2021 네이버파이낸셜 개발자 채용 챌린지 코딩테스트 후기
네이버 파이낸셜이라는 회사에서 주관한 코딩테스트다. 금융기업이라 그런지 채용 절차도 겁나 길다. 혹시 모르는 마음에 프로그래머스에서 접수해 응시하였다. 테스트 케이스만 보면 일단 올솔인데 히든까지 고려하면 3솔이지 싶다.
1번은 hash자료구조를 잘 사용해야 한다. 전체 유저 정보를 담는 hash구조와 주어진 input의 각 요소마다 유효한 지 체크하는 hash구조 2개로 해결할 수 있다.
2번은 달팽이 알고리즘 문제이다. spiral traverse에 대한 경험이 없으면 아마 풀기 힘들지 않을까. 그나마 검색 가능이라 어지 해결되는 문제였지 그게 아니라면 무조건 네이버 코테 기준 3-4번에 랭크되어야 한다 생각한다. 전체 빈칸의 개수를 total로 잡고 0이 될 때까지 조건에 따라 달팽이 순회를 반복하여 0이 되는 순간의 좌표를 리턴하면 된다.
3번은 유저 정보를 담는 hash구조를 사용하여 주어진 input값에 대한 최종 hash구조를 완성한 뒤 각 유저끼리 후보자에 선정이 되는지 완전탐색으로 검증하면 된다. python이라 쉬웠지 java 등 언어제약이 걸린다면 꽤나 데이터를 처리하느라 골머리를 썩혔겠다.
4번은 bfs던 완전탐색이던 다익스트라처럼 해결할 수 있다. 부호 반전 키워드가 있으므로 점수가 음수더라도 0노드를 만나 반전될 수 있으므로 방문배열의 초기값은 -INF로 설정해야 한다. 그리고 갈 수 있는 방향이 오른쪽, 아래쪽밖에 없으므로 왼쪽, 위쪽을 생각하여 회귀(or 사이클)가 형성되는 문제는 고려할 필요없다. 따라서, 모든 경우의 수에 대해 탐색하면 되겠다. 필자는 bfs처럼 초기 좌표와 점수를 큐에 넣고 탐색하였다. 다만, 좀 아쉬운 점은 0노드의 부호반전으로 인해 계속 최저로 가더라도 결국 0으로 반전하면 최댓값이기에 노드의 중간버퍼를 [최대, 최소] = [-INF, INF]로 초기화하여 탐색했으면 완벽하지 않았나 싶다.
난이도는 파이썬 기준으로 브론즈 상위, 실버 상위, 실버 중간, 골드 하위 정도로 보인다. 과제는 자바-노드 언어제한이 걸린 걸 봐서는 프레임워크 기능구현 관련 과제가 아닐까 생각한다. 카카오를 제외하면 코테는 어느정도 무난하게 해결이 되는 듯 싶다. 다만 코테는 개발자의 서류전형이나 다름이 없어 면접과 포트폴리오 준비가 많이 필요해보인다.
결과 : 1차 코딩테스트 통과했고 2차 과제테스트 진행 예정입니다. java, node.js 언어 고정으로 보아 프레임워크 경험을 물어볼 듯 하네요... 얼른 스프링 공부를 하던가 해야지...