삼성 대학생 인턴 모집 공고가 뜨자마자 처음으로 입사 서류란 것을 준비하기 시작했다. 이맘때쯤 학교에서 무료로 해주는 입사서류 컨설팅을 처음 받았는데 이때 내 자소서의 심각성을 깨닫고 처음부터 끝까지 갈아엎었다.^^ (휴 이때라도 깨달아서 다행;;)
자소서는 3월 22일까지 제출이었는데 발표는 4월 13일 저녁 6시쯤 나왔다. 첫 도전이었는데 처음 맛보는 '합격'이라는 두 글자에 마음이 너무 설레 버렸다. 그런데 기뻐하는 것도 잠시,, 코딩 테스트까지 2주 정도 밖에 남지 않아 발표날 저녁부터 바로 코테 준비 모드로 돌입하였다.
삼성 코딩 테스트 문제는 구현력 싸움이라고 생각한다. 누가 얼마나 꼼꼼하고 빠르게 구현할 수 있는가를 가장 중요시 여기는 느낌이다. 2문제에 3시간이므로 한문제에 1시간 반씩 오류 없이 풀어내면 충분하다. (말만 쉽지 현장에서 식은땀 흘리며 집중하기란 쉽지 않은 게 함정)
코딩 테스트 준비는 삼성의 공식 홈페이지인 SW Expert Academy 와 백준(BOJ)에서 준비할 수 있는데 나는 거의 백준에서만 풀었다. 아래는 내가 푼 삼성 기출문제들이다.
부족한 코딩 실력을 끌어올리기 위해 하루에 2문제씩은 꼬박꼬박 풀었다.
처음부터 3시간을 잡고 풀기에는 부담도 크고 어떻게 해야 할지 감이 잘 오지 않으므로 우선은 1문제 당 1시간 30분씩 잡고 문제 푸는 연습을 하고, 어느 정도 감을 잡았으면 그때부터 3시간을 잡고 푸는 것을 추천한다. 나처럼 삼성 기출문제를 한 번도 접해보지 않은 사람이라도 어느 정도 코딩 테스트를 준비해왔던 사람이라면, 코딩 테스트 전까지 백준에 있는 기출문제만 다 풀어도 충분할 것이다.
문제를 반복해서 풀어봄으로써, 실제 시험에서 내가 해야 할 일은 아래와 같다는 것을 느끼게 되었다.
문제를 마주했을 때 뭐부터 해야 할지 도무지 모르겠다면 이 방법을 참고해도 좋을 것 같다.
- 자료구조 선택 (ArrayList, LinkedList, 2차원 배열 등)
- 알고리즘 선택 (DFS, BFS 등)
- 시간 복잡도 유추
- 예외 케이스 상상
Tip. 맵을 프린트하는 print 함수 만들기 (디버깅하기 위해)
이런 식으로 연습에 연습을 거듭하다가 문득 '내가 잘하고 있는 걸까?'하는 생각이 들기도 하였다. 매일 똑같은 방법으로 문제를 푸는데, 실력이 느는 듯한 느낌을 크게 받지 못했기 때문이다. 그러나 코딩 테스트까지 얼마 시간이 남지 않아 남은 시간 동안 생각을 비우고 하던 대로 연습하였고, 지금 생각해 보니 투자한 시간은 배신하지 않는다는 점을 깨달았다.
거의 2시간을 걸려 영통에 있는 삼성전자에 도착할 수 있었다. 오후 3시 시험이라 근처 카페에 미리 도착해 그동안 풀었던 삼성 기출문제들을 훑어보고 들어갔다. 코로나 방역수칙 때문에 몇 가지 절차가 있어서 들어가는 데에도 시간이 꽤 걸렸다. 시험장 내에서는 핸드폰 사용 불가여서 화장실에서만 핸드폰을 할 수 있었고, 시험장은 굉장히 조용한 분위기였다.
시험 시작 전 안내사항 시청 시간과 IDE 준비 시간이 30분 정도였던 것 같다. 시험 보기 전 이클립스를 사용하다가 잘 안되는 부분이 있어서 당황하기도 했지만 무사히 제시간에 시험을 시작할 수 있었다.ㅠㅠ (자바로 시험 보시는 분은 꼭!!! 이클립스 사용법을 충분히 익히고 가시길 바란다. 여태 이클립스로 연습해왔지만 시험장에서는 당황하니까 보이던 게 안 보이고.. 그랬다..)
출제된 문제를 복원해놓은 문제가 아래 문제들이다.
애초에 2문제를 완벽하게 풀 수 있을 거라고 예상하지 않았기 때문에 1문제라도 제대로 푸는 것을 목표로 잡았고, 다행히도 그 목표를 이뤘다. 분명히 집에서 혼자 풀면 1시간 반 이내에 충분히 풀 수 있는 문제였는데 시험장이라 긴장했는지 디버깅하는데 시간을 많이 잡아먹었다.ㅠㅠ 기억상으로는 2시간? 정도에 1번 문제를 다 풀 수 있었고 2번 문제는 깔짝대다가 제출한 정도였다.
탈락의 고배를 마실 생각에 집으로 돌아오는 발걸음이 무거웠지만,, 머릿속으로 '혹시 몰라' 하면서 행복 회로를 돌리기도 하였다.
코딩 테스트 결과는 5월 18일에 발표되었다. 1솔이라 당연히 탈락일 줄 알았는데 합격해서 깜짝 놀랐다.
당연히 탈락일 줄 알고 면접 준비 안 하고 있었는데 다음부턴 결과에 상관없이 면접 준비를 해봐야겠다. 이 글을 보고 계시는 분들도 코딩 테스트 결과는 어떻게 될지 아무도 모르니 애매하다 싶으면 준비하시길 바란다.
면접은 일주일 후인 5월 28일에 잡혔는데 다른 곳 면접과 겹쳐서 기나긴 고민 끝에 포기했다..ㅠㅠ 면접까지 갔으면 면접에서 또 좋은 경험을 할 수 있었을 텐데 많이 아쉽다. 그러나 아직 끝난 게 아니니 하반기 때 또 도전하도록 해야겠다. 삼성전자 코딩 테스트를 한번 준비해봤으니 그래도 다음엔 더 능숙하게 준비할 수 있을 듯하다!