기록/코딩테스트

2021 하반기 네이버 코딩테스트 후기

8iggy 2021. 10. 9. 20:59

전혀 응시하게 될 거라곤 생각하지 못했던 코딩테스트였다. 카카오에 입사하신 학교 선배도 네이버는 서탈하셨는데 내가 되겠냐... 하고 접수만 던져놓고 잊고있었는데 코딩테스트 응시 자격 메일이 와서 놀랐었다. 아무래도 앱 출시 경험과 2지망 직군에 모바일로 비벼넣는 게 조금 유효했었나 보다. 전날 화이자 2차를 맞아서 부작용 이슈가 있었지만 실력에 지장이 갈 정도로 심하진 않았던 듯하여 천만다행이었다. 카카오 코테 물먹고 엄청나게 낙심하여 거진 3주 동안 알고리즘은 거들떠도 보지 않았더니 실력이 꽤나 녹슬었다는 생각이 든다.

난이도는 라인, 삼성보다 쉽게 기본 코딩 스킬 위주로 나온다길래 안심하고 갔는데 아니었다. 누가 네이버 코테 쉽다고 했냐... 문제가 어렵지는 않았으나 구현으로만 거진 3문제, 알고리즘 문제마저도 백트래킹 완전탐색이 주요한 문제라 사실상 구현이었다. 2시간 내로 4문제를 완전히 해결하려면 모든 문제에 대한 직관이 막힘없어야 하고 구현 실력도 어느정도 있어야 했다. 얼추 1시간 30분 동안 3문제 테스트 케이스를 통과시키고 30분 동안 4번을 봤으나 해결하지 못하고 테스트를 마쳤다.

1번에서 적잖은 충격을 받았다. 보통 1번이라 함은 적당한 스트링 다루기로 몸풀기 날먹 문제를 던져주기 마련인데 조금의 고민이 필요했던 문제였다. 테스트 케이스 규모는 작으나 조건에 맞게끔 분기문을 작성하여 탐색을 진행해야 했다. 최솟값의 개수가 복수이거나 상대방이 요구하는 종류의 내 숫자와 나의 최솟값의 차이가 1이면 어떻게 분기를 처리해야 하는지 고민이 필요했다. 분기 처리를 하다보니 1번에서 30분 소요.

2번은 큐라는 기본적인 자료구조를 내면서도 이리 신선하게 낼 수 있다는 점에 놀랐다. p값을 다루는 로직이 핵심이 되었다 생각한다. 전체 원소 개수를 별도의 변수로 관리하여 pop연산 시 발생할 수 있는 상황에 따라 요구조건에 맞게 분기문을 작성해야 했다. 개인적으로는 약 20분 정도 소요되어 1번보다 2번이 쉬웠다 생각한다. 최근 코딩테스트가 요구조건에 맞게 분기문을 정확하게 작성하는가에 대한 검증 문제들이 빈출되고 있는데 12번이 그러한 유형이라 생각한다.

3번은 보면서도 구현실력을 보려고 작정했음을 알 수 있었다. 2차원 배열 주고서 방향에 따라 직사각 배열의 부분 사각형 영역을 대각 반전하라는 요구사항인데 다른 이들은 보다 쉽게 공식을 써서 해결한 듯 하다. 필자는 그냥 반전할 부분 배열을 따로 빼내서 새롭게 좌표기준을 설정하고 반전시킨 뒤 변환된 좌표기준을 역으로 접근하여 갱신하는 방식을 채택했다. 수학적 지식을 활용하면 모를까 알고리즘으로 빠르게 구현하는 문제가 아니었기에 상당한 시간이 소요되었다. 거진 4-50분을 사용하였다.

4번은 백트래킹을 이용한 완전탐색이라는 점은 알았으나 주어진 제시조건에 맞춰서 새로운 그래프를 생성한 뒤 각 노드에 대해 이미 배치가 완료된 노드로의 경로 접근이 가능한지 검증하는 로직을 작성해야 했다. 이 함수를 작성할 수 있어야 4번 문제 해결이 가능했는데 유니온 파인드로 풀어야 하나 고민하던 중 결국 경로 검증 함수를 작성하지 못했다. 3번까지 해결하고서 남은 30분 동안 삽질하던 중 슬프지만 별 소득 없이 종료해야 했다.

총평은 점점 알고리즘만 사용해서 후딱 풀 수 있는 문제들은 지양하되 지문을 제대로 읽어서 요구조건에 맞게 구현하는 문제가 빈출하고 있다. 역시 기업 입사 코딩테스트 알고리즘 문제는 군더더기 없이 지문이 깔끔하다. 그래도 역시 제한시간 2시간으로 설정해놓고 구현을 4문제를 준다는 게 푸는 응시자 입장에서는 체력 소모가 확실하다... 다른 분들의 후기를 들어보니 저번보다는 확실히 어려웠다는데 점점 고여가는 이 시장을 생각하면 저번과 비슷하게 3솔컷이지 않을까. 나로서도 알고리즘을 어느정도 공부했다면 3솔은 해야했다 생각하기에 서류 점수가 평균점 정도라면 3솔이 합격컷으로 예상된다. 그리고 내 서류는 평균점일리가 없기에 '-`... 일단 기대는 접고 마저 하던 포폴 준비나 하러 가야겠다.

결과 : 기술면접 1차 통보받았습니다. 힘들 수도 있겠다 싶었는데 좋게 봐주신 듯 하네요. 네이버 면접은 알고리즘, 기본 CS, 개발 언어 이해, 포트폴리오 설명 등으로 진행되고 면접관에 따라 진행 방식이 많이 갈린다고는 하는데 포트폴리오가 없는 상태이니 블로그에 정리해둔 CS, 알고리즘, 개발언어를 리마인딩 하고 가려 합니다.

코딩테스트 결과

- 후속포스팅

2021 하반기 네이버 1차 면접 후기