본문 바로가기

Etc/일상

[후기] 2021 카카오 채용연계형 인턴십 코딩테스트

728x90
반응형

0. 카카오 채용연계형 인턴십 코딩 테스트

지난 5월 8일 프로그래머스에서 14시~18시까지 무려 4시간 동안 카카오 채용연계형 인턴십 코딩 테스트를 봤다. 전체적인 후기를 말하자면 일단 문제가 굉장히 어려웠다. 일단 2문제는 건들지도 못했고 푼 3문제 중 1문제도 굉장히 불안하다. 

 

네이버와 달리 굉장히 자유로웠다. 별도의 감독은 없었으나 그만큼 문제를 어렵게 낸듯하다. 원래 카카오 코딩 테스트가 어렵기로 유명하나 직접 체감해보니 생각 이상이었다. 감독 없이 코딩 테스트를 보면 지원자들끼리 모여서 푼다거나 하는 반칙 행위가 있을 수 있는데 마치 "모여서라도 풀 테면 풀어봐라."라는 느낌이었다.

 

1. 문제

쉬운 거 2문제, 어려운 문제 3문제였다. 난이도 등급을 매기면 쉬운거 2문제는 실버, 어려운 2문제는 플래티넘 정도라 생각한다. (골드는 어디로...?) 4,5번은 문제만 읽고 풀지도 못해서 딱히 느낀 점은 없고 3번 문제는 그래도 열심히 풀었는데 아예 모르는 알고리즘을 사용했었어야 해서 아쉽다.

 

1번은 문자열 문제였다. 문자열과 관련된 간단한 파싱 문제였는데 입력받은 문자열을 배열로 변환한 후 하나씩 확인해가며 새로운 숫자 배열을 만들었다. 만약 i번째 배열이 문자라면 one~nine까지 문자열과 비교해서 해당되는 문자열에 알맞은 숫자로 변환한 후 문자열 개수만큼 점핑했다. 예를 들어 one이라면 ansewer에 1을 추가하고 3만큼 점핑했다.

 

2번은 브루트 포스 문제였다. 처음에는 보자마자 bfs로 풀면 되겠다 생각했는데 브루트 포스로도 그냥 풀 수 있겠다 싶어서 브루트포스로 풀었다. 각 인원들의 거리를 하나씩 구한 후 3 이상일 경우에 조건과 비교하여 조건에 부합하지 않으면 0을 반환하고 전부 조건에 부합하면 1을 반환하도록 했다.

 

3번은 정확성과 효율성까지 고려해야 했으며 펜윅트리와 이분 탐색을 이용하여 푸는 문제이다. 효율성을 만족해주는 알고리즘이 펜윅트리인데 문제를 풀 당시에는 펜윅트리에 대해서 전혀 몰랐어서 효율성을 통과하기위해 이것 저것 시도하다가 정확성도 통과하지 못했다. 문제에서 "최대가 되는 최솟값"이라는 문구때문에 '이분탐색을 사용해야 하는구나'까지는 생각했으나 펜윅트리에 대해서 모르는 상태에서 구현하려니 재데로 될 리가 없었다. 현재 위치를 옮긴다거나 하는 과정들은 무시하고 결과적으로 삭제하는 위치만 저장하면 효율성을 통과할 수 있겠다고 생각했으나 전혀 아니었다.

정확성만 생각하고 풀면 펜윅트리를 사용하지 않고도 풀 수는 있는데 아마 펜윅트리를 아냐 모르냐에 2.5 솔과 3 솔이 갈릴 듯하다.

 

4번은 다익스트라를 이용하는 문제이다. 보자마자 다익스트라를 이용해서 풀어야겠다고 생각만 하고 어떻게 구현해야 할지 몰라서 포기했다. 

 

5번은 트리 dp와 그리디, 이분 탐색을 이용해 푸는 거라는데 솔직히 지금도 뭐가 뭔지 모르겠다. 

 

2. 후기

1,2번을 풀고 3번 효율성에서 막혀서 4,5번으로 회유했는데 4,5번이 더 어려워서 다시 3번만 붙잡고 있다가 끝났다. 개인적으로 3번 효용성을 애초에 포기하고 정확성만 집중했으면 2.5 솔도 되지 않았을까 하는 아쉬움이 남는다. 

728x90
반응형