필자는 삼성전자 DS 부문에 지원하였고, 5월 1일에 코딩 테스트를 응시하였다.
오후반은 2시부터 시작이었고, 응시 장소는 영통역 근처 상생 협력관이었다.
① 분위기
전반적인 분위기를 적어보자면, 1시 30분부터 입장이 가능했고 코로나로 인해 물을 마시지 못하게 했다.
코딩 테스트를 위한 노트북이 준비되어 있었고, 별도의 키보드가 제공되어 큰 불편함 없이 타자를 칠 수 있었다.
(+감독관분께 말씀드리면 중간에 화장실을 다녀올 수 있다.)
② 시험 문제
시험에 나왔던 문제는 코드 트리에 복기되어 있다.
1번 : https://www.codetree.ai/frequent-problems/tail-catch-play/description
2번 : https://www.codetree.ai/frequent-problems/tree-kill-all/description
나는 1번을 풀었는데 결과적으로 1번이 어렵고 2번이 쉬웠던 문제였다.
삼성은 문제를 클릭하는 순간 시간을 재기 시작하지만 어차피 한 문제를 온전히 풀면 합격의 가능성이 높기 때문에, 두 문제를 모두 클릭해 보라는 말이 많다.
하지만 문제를 끝까지 풀기 전까지는 뭐가 어려운지 모를 수 있고, 괜히 1번을 풀면서 '아 2번이 쉬울 것 같은데'하면서 망설이거나 왔다 갔다 하면서 시간을 버리게 될까 봐 1번만 보고 바로 도전했다. 아마 2번을 먼저 보고 1번을 풀었으면 1번은 내가 못 푸는 문제라고 생각했을 것 같다.
결과는 5월 27일 금요일 오후 5시 10분쯤에 발표되었다.
너무 떨려서 실눈 뜨고 봤는데 "○○○님은"까지만 보고 "○○○님은 우리와 함께가실 수 없습니다." 문맥이라 떨어진 줄 알았다.ㅜㅜ
③ 준비 과정
필자는 코딩테스트가 굉장히 자신 없는 편이었기 때문에, 이 글을 읽는 코린이들에게 조금이나마 도움이 되고자 준비 과정을 공유하려 한다. 필자가 중요하게 생각하는 것은 기출 풀이와 코딩 테스트 당일의 전략이다.
우선 삼성은 문제 대부분이 복기되어 있다. 백준과 코드 트리 등에서 기출을 확인할 수 있으니 최대한 많이 풀어보고 가는 것을 추천한다. 필자의 경우 자기소개서를 제출한 이후 약 한 달 동안 매일 하루에 한 문제씩 푸는 것을 목표로 삼았다. 결과적으로 모든 문제를 풀지는 못했지만 문제의 경향성을 파악할 수 있었다.
삼성은 다른 기업과 다르게 복잡한 구현 문제가 출제된다. 따라서 기출 문제를 풀면서 dx, dy 테크닉과 같이 자주 쓰이는 기법을 내 것으로 만드는 것이 중요하다고 생각한다.
또한 구현 문제는 흐름이 굉장히 길기 때문에 최대한 잘게 함수화하여 구현하는 것이 중요하다. 문제에서 요구하는 기능들을 각각 하나의 함수로 만들어서 사용하면 문제가 clear 해지고 디버깅하는데도 큰 도움이 된다.
개인적으로 마법사 상어와 블리자드(https://www.acmicpc.net/problem/21611)가 이 2가지를 가장 잘 연습할 수 있는 문제라고 생각한다. 이 한 문제로 배울 수 있는 테크닉만 3~4가지가 넘고 기능 단위로 함수화하는 연습도 할 수 있을 것이다.
두 번째로 중요한 것은 전략이다. ②번에서 언급했듯이 코딩 테스트 실력이 탄탄하지 않은 필자 같은 사람은 당일의 컨디션이나 운(문제풀이 순서)에 따라서 결과가 좌우될 수 있다. 만약 코딩 테스트가 자신 없다면 '나는 3시간 동안 한 문제만 건든다.'라는 마음가짐으로 임하는 것이 좋을 것 같다. 한 문제를 완벽히 풀면 통과할 가능성이 높고, 문제를 풀다 보면 집중력이 굉장히 떨어지기 때문에 평소에 풀 수 있는 문제라도 시간 안에 못 풀 가능성이 높기 때문이다.
④ 마무리
필자의 경우 서류를 넣는 순간까지 GSAT을 보는 다른 직군으로 넣을까 고민을 했을 정도로 코딩 테스트에 자신이 없었다. 따라서 코딩 테스트가 어렵고 잘 안 되더라도, 삼성만큼은 충분히 노력으로 붙을 수 있는 시험이라고 생각한다. 모두 포기하지 않고 좋은 결과가 있기를 바란다!!!
댓글