목록분류 전체보기 (323)
miinsun
삼성 SDS 알고리즘 특강 수료 조건 중 SW 검정 응시가 있기에 교육이 종료되자마자 다음날 SW검정 시험을 보도록 되어 있다. 사실 프로 등급은 백준 플레티넘 정도 수준이라는 강사님의 말에 반쯤 포기하고 있었는데, 후기의 많은 사람들이 Pro 등급에 합격하는 걸 보고 자격지심이 생겨서 시험 직전 날까지 밤새 공부하게 됐다.. 시험은 4시간 동안 1문제를 풀어야 하며 응시 언어는 Java, C, C++가 있다. 따로 필요한 준비물은 없고 꼭 신분증은 챙겨가자. 또 개인 볼펜을 챙겨가면 시험 볼 때 편하다. 아 그리고 마지막으로 해당 시험에서 합격하면 삼성 SDS 입사 시 가산점이 생긴다. 사실 첫 시험에서 아쉽게 불합격했는데, 다행히도 두 번째 기회를 주셔서 두번의 시험을 볼 수 있었다. 첫 시험은 모든..
1) 지원 동기 사실 국비 과정을 듣고 있었는데 내가 기대했던 교육 과정이 아니라서 교육을 더 이상 이어가기에는 무리가 있기에 교육을 그만뒀었다. 딱 국비 교육을 그만둔 타이밍에 삼성 알고리즘 특강 공고를 에타에서 발견하게 됐고, 붕 뜬 기간 동안 들으면 좋을 것 같았다. 기존에 알고리즘을 독학하는데 어려움이 있었기 때문에 2주동안 알고리즘을 마스터하자는 마인드로 지원하게 됐다. 2) 선발 절차 후기 선발 절차는 먼저 간단한 지원서를 쓰고, 사전 테스트(코딩 테스트)를 보면 된다. 먼저, 지원서는 다른 교육 절차들보다 수료증/증명서 확인 절차가 철저했다. 간단한 자기소개와 휴학 증명서, 성적 증명서 등이 필요했다. 사전 테스트는 5개의 문제를 일주일동안 풀면 되는데, 문제 난이도가 생각 이상으로 어려웠다..
💬 문제 설명 크기가 N×M인 지도가 존재한다. 지도의 오른쪽은 동쪽, 위쪽은 북쪽이다. 이 지도의 위에 주사위가 하나 놓여져 있으며, 주사위의 전개도는 아래와 같다. 지도의 좌표는 (r, c)로 나타내며, r는 북쪽으로부터 떨어진 칸의 개수, c는 서쪽으로부터 떨어진 칸의 개수이다. 주사위는 지도 위에 윗 면이 1이고, 동쪽을 바라보는 방향이 3인 상태로 놓여져 있으며, 놓여져 있는 곳의 좌표는 (x, y) 이다. 가장 처음에 주사위에는 모든 면에 0이 적혀져 있다. 지도의 각 칸에는 정수가 하나씩 쓰여져 있다. 주사위를 굴렸을 때, 이동한 칸에 쓰여 있는 수가 0이면, 주사위의 바닥면에 쓰여 있는 수가 칸에 복사된다. 0이 아닌 경우에는 칸에 쓰여 있는 수가 주사위의 바닥면으로 복사되며, 칸에 쓰여 ..
💬 문제 설명 'Dummy' 라는 도스게임이 있다. 이 게임에는 뱀이 나와서 기어다니는데, 사과를 먹으면 뱀 길이가 늘어난다. 뱀이 이리저리 기어다니다가 벽 또는 자기자신의 몸과 부딪히면 게임이 끝난다. 게임은 NxN 정사각 보드위에서 진행되고, 몇몇 칸에는 사과가 놓여져 있다. 보드의 상하좌우 끝에 벽이 있다. 게임이 시작할때 뱀은 맨위 맨좌측에 위치하고 뱀의 길이는 1 이다. 뱀은 처음에 오른쪽을 향한다. 뱀은 매 초마다 이동을 하는데 다음과 같은 규칙을 따른다. * 먼저 뱀은 몸길이를 늘려 머리를 다음칸에 위치시킨다. * 만약 이동한 칸에 사과가 있다면, 그 칸에 있던 사과가 없어지고 꼬리는 움직이지 않는다. * 만약 이동한 칸에 사과가 없다면, 몸길이를 줄여서 꼬리가 위치한 칸을 비워준다. 즉, ..
TCP의 흐름제어 TCP연결이 성립되면 전송자와 수시자 모두 sendBuffer와 receiveBuffer를 가짐 보내는 입장에서 window-size만큼 데이터 전송 받는 입장에서 receive buffer보다 이상의 데이터가 들어오면 전부 폐기됨 받는 입장의 receive buffer를 고려해서 보내는 것이 관건 흐름제어를 할때 Receive Window 필드를 사용 보내는 입장에서 window-size를 알려줌 받는 입장에서 데이터를 받으면 receive buffer를 알려줌 receive buffer만큼 데이터를 전송하게 됨 흐름 제어란 수신자의 버퍼가 넘치지 않도록 데이터 전송을 조절하는 작업 버퍼의 크기 확인 할 때 Receive window 필드의 값만 채워서 보내고 나머지는 쓰레기 값을 보..
타임 아웃이란? * TCP는 타이머를 통해서 데이터 재전송 여부를 판단 * timeout이 되기 전에 feedback이 오면 다음 패킷을 보냄 * timeout이 되면 패킷이 유실된 것으로 판단하고 재전송 RTT(Round Trip Time, 왕복 시간) 세그먼트가 수신자에게 도착하고 feedback이 돌아오는 시간을 rtt라고 함 타이머 시간을 결정 짓는 요소 타이머 시간 판단시, 시간이 너무 짧으면 오버헤드가 발생 반대로 시간이 너무 길면, 유실 대응이 늦어짐 그렇다면 타이머 시간을 RTT만큼 설정하면 되지 않을까? 모든 패킷의 RTT는 다르기 때문에 다른 RTT를 적정 RTT로 맞춰줘야 할 필요가 있음 대표값으로 맞춰줘야함 → Estimated RTT(현재까지 측정해온 RTT의 합을 평균) TCP ..
TCP의 전반적인 특징 Point-to-Point : 한쌍의 프로세스 간의 데이터 통신 Reliable : 신뢰성있고 순서에 의거해 전송 pipelined: window 사이즈를 조절해서 tcp 혼잡 및 흐름 제어 full duplex data: 양방향 통신, 전이중데이터 conection-oriented: 연결 지향적, 제어 메세지 교환 flow controlled: 흐름제어, 발신자는 수신자가 정한 용량보다 더 많이 보내지 못함 TCP 헤더 구성 요소 포트 넘버(source port & dest port) : 출발지 포트와 도착지 포트가 있다 (포트 넘버는 0 ~ 65535) 시퀀스 넘버(sequence number) : 데이터의 중복을 확인할 때 사용하는 번호 ACK 넘버(acknowledgemen..
💬 문제 설명 주난이는 크게 화가 났다. 책상 서랍 안에 몰래 먹으려고 숨겨둔 초코바가 사라졌기 때문이다. 주난이는 미쳐 날뛰기 시작했다. 사실, 진짜로 뛰기 시작했다. ‘쿵... 쿵...’ 주난이는 점프의 파동으로 주변의 모든 친구들을 쓰러뜨리고(?) 누군가 훔쳐간 초코바를 찾으려고 한다. 주난이는 N×M크기의 학교 교실 어딘가에서 뛰기 시작했다. 주난이의 파동은 상하좌우 4방향으로 친구들을 쓰러뜨릴(?) 때 까지 계속해서 퍼져나간다. 다르게 표현해서, 한 번의 점프는 한 겹의 친구들을 쓰러뜨린다. 다음의 예를 보자. 주난이를 뜻하는 *은 (3, 4)에 있고, 초코바를 가진 학생 #는 (1, 2)에 있다. 0은 장애물이 없는 빈 공간임을 뜻하고, 1은 친구들이 서있음을 의미한다. 다음은 주난이의 점프에..