본문 바로가기
일상

2024 팀네이버 신입공채 코딩테스트 후기

by algosketch 2024. 3. 25.

※ 고백합니다. 이 글은 퇴고하지 않았습니다.

 

준비 기간

사실 팀네이버 신입공채가 작년보다 2~3주 정도 일찍 시작되어서 조금 당황했다. 그런데 사실 언제 뜨던 준비에 큰 차이는 없을 것 같다. 다만 진행중인 프로젝트가 있어서 조금 당황했을 뿐이다.

코딩테스트 준비 전 배경지식을 먼저 이야기하자면, 노베이스는 아니었다. 다만 코딩테스트 성적이 좋지 않다. 붙었던 곳은 SW마에스트로 12기와 부스트캠프 8기이다. 최근 카카오 겨울 인턴십은 3솔이 컷이었는데 안타깝게도 2.95솔(20개의 TC 중 19개 통과)을 하여 떨어졌다.

사실 알고리즘은 2018년 때 취미로 했었는데, 그때가 가장 잘했던 것 같다. 당시 백준 350문제 정도를 풀었고, 랭킹1500등 정도였다. (당시에는 solved.ac가 없어서 랜덤 난이도로 풀었다) 알고리즘 대회는 버스 기사와 함께 UCPC 2021, UCPC 2022를 나갔고, 나는 승객이었다. 그러나 대회를 준비하면서 풀었던 문제는 사실 코딩 테스트에 도움이 되는 문제는 아니다.

잡설이 길어졌는데, 나는 오래 전에 PS를 아주 조금했기 때문에 알고리즘 주 언어는 C++이었다. 하지만 안드로이드 개발자로 준비하기 위해 Kotlin으로도 풀었었는데, 꽤 많은 코딩테스트에서 Kotlin을 지원하지 않는다. 따라서 결국 C++을 주력으로 (Java를 쓰기엔 불리해 보이기에...) 가져갈 수밖에 없었고, 최근 코딩테스트에서는 문제에 따라 C++과 Kotlin를 혼용하기도 했다.

네이버 코딩테스트에서는 프로그래머스에서 100% Kotlin으로 준비했다. Kotlin으로 넘어올 경우 편해진 것도 있지만 불편한 점도 꽤 존재했다. (배열 및 컨테이너 사용) 기존에는 고득점 Kit 말고는 프로그래머스를 거의 이용하지는 않았다. 이번에는 시험 환경과 동일하게 맞추기 위해 프로그래머스를 사용했고, 2~3레벨과 Kotlin 지원 문제로 필터를 걸어서 정답률 순으로 풀었다. 마지막 날까지 자소서를 검토했기에 코딩테스트 준비 기간은 1~2주 정도였다.

2023년 4월부터 1일 1문제를 풀다가 넥스터즈와 부스트캠프를 시작하면서 랭킹이 떨어지는 모습. 이번 코딩테스트에는 백준을 이용하지 않았다.

사실 원래 3만등대였는데 이전 스크린샷 기록이 없다. 원래 3~40문제 정도는 더 풀 거라 예상했는데, 생각보다 적게 풀었다. 문제를 풀 때는 타이머를 켰다. 아이디어를 구상하면 코드를 작성하기 전에 시간 복잡도를 계산했고, 여러 풀이가 있을 경우 다른 풀이로도 풀었다. 작성한 코드를 더 짧게 바꿔보기도 했다.

 

코딩테스트

사실 코딩테스트를 기대했던 것보다 못 봤다. 주된 원인은 컨디션 때문인데 잠을 못 잔 상태로 시험을 봤다. 전날 컨디션 조절한다고 일찍 잠에 들었으나 1시간만에 깨었는데, 평소에 밤낮이 바뀌어 있어서 다시 잠들지 못 했다. 그렇게 피곤한 상태로 코딩테스트를 시작했는데 문제를 읽을 때부터 피곤함의 영향이 느껴졌다.

작년 네이버와 네이버 부스트캠프 코딩테스트에서 모두 구현 문제가 나와서, 구현 문제에 대한 대처도 준비했으나 구현 문제는 나오지 않았고, 1번 문제가 가장 어렵게 느껴졌다. 개인적으로 느낀 난이도는 1 > 2 = 3이고, 프로그래머스 기준으로 모두 어렵지 않은 3단계 정도의 난이도이다. 아이디어 자체는 2번이 더 쉬운데, 정해는 아니지만 복잡하게 구현한다면 3번이 더 접근하기 쉬웠다.

개인적으로 생각하는 문제 유형은 각각 우선순위 큐, 투포인터, 우선순위 큐이다. 다만 3번은 3포인터로도 풀이가 가능한데, 처음에 2포인터로 충분하다고 생각해서 우선순위큐에 접근하지 못 했고, 컨디션 문제로 여기서 1시간을 낭비한 게 패착이었다. 배열에 3개의 포인터를 두는 풀이가 가능하지만 이렇게 풀 경우 풀이가 복잡해진다. 다만 5분이 더 주어졌다면 풀었을 것 같다.

결론은 1문제밖에 풀지 못 했다. 1번을 완전탐색으로 푼 것에 정확도 점수 0.5점을 받는다면 1.5문제이겠지만... 잠을 충분히 잤다면 3문제를 모두 풀었을 수도 있겠다는 생각에 아쉬움에 토요일에는 멘탈이 좋지 않았다. 문항수는 작년 4문항에서 1문항 줄어 3문항이 출제되었지만, 작년보다 평균 점수가 높은 것으로 보여 희망을 갖기는 어려울 것 같다.

 

코딩테스트 이후

코딩테스트가 끝나고 오픈 카톡방 반응만 확인하고 바로 잤다. 그리고 오늘 기분 전환으로 클라이밍을 갔다 와서 조금 멘탈을 회복한 상태다. 원래는 이 기간에 CS 준비를 할 예정이었는데, 합격을 기대하기는 어려워서 책 한 권을 읽고 영어를 공부할 예정이다. 우리 사이드 프로젝트 두목이 인천까지 쫓아오기 전에 미뤄뒀던 개발도 진행하고, 구입해 두었던 compose internals 번역본도 읽을 예정이다. 근데 이 책은 너무 어렵다.

아 그리고 노션으로 이력서를 작성하면 문제점이 이만저만이 아니라 삼만이라 노션 이력서 및 포트폴리오와 빠이빠이를 준비하고 있다. 이력서 new version은 피그마로 디자인할 예정이다. 그래도 작년 이맘때쯤 처음 작성해 5번이상 피드백 받고, 거의 100번 가까이 수정했는데 조금 아쉬움이 남는다. 그리고 노션 요즘 가격도 오르고! (나는 기존 유저라 여전히 4달라이지만) 서버는 불안정하고! 느리고! 기회가 된다면 새로운 고성능 메모장을 쓰려고 한다.