티스토리 뷰



 2018년 9월 15일 신입 개발자 공채를 위한 2019 KAKAO BLIND RECRUITMENT 온라인 코딩테스트에 참가했다.


 코딩테스트는 5시간동안 진행되었고, 문제는 총 7문제가 출제되었다. 작년 온라인 코딩테스트에도 참가했었는데 이번에는 작년보다 확실히 어려워진 것 같다. 문제 유형은 작년과 같이 이번에도 단순 구현하는 문제로 비슷했지만, 이번 년도에는 조금 더 생각해야하거나, 예외처리가 필요하거나, 문자열 위주의 파싱 문제들이 출제되었다. 카카오에서는 난이도 순서로 문제가 출제되었다고 했는데, 개인적으로 각 문제별 난이도는 A = B < G = F < E <  C < D 로 생각한다.


 대회 도중에는 A, B, C를 빠르게 풀고 D번 문제에서 많은 시간을 소요해서 뒤에 문제를 제대로 못봤다. 특히 D번 문제는 부분점수가 주어져서, 효율성을 생각하지 않은 정확성을 위한 코드만 빠르게 제출해놓고는, 호율성을 어떻게 해결할 수 있을지 고민했다. 하지만 대회 도중에는 결국 풀지 못했다. 대회가 끝나자마자 박트리(baactree)님이 직접 풀이를 설명해주셨는데 단번에 이해가 되었다. 특히 D번은 효율성을 고려한 문제로 생각하면 코드포스(Codeforces)에서 자주 나오는 유형이면서, Div2 D번 정도의 난이도라고 하니 대회 도중 풀지는 못했지만 많은 고민을 해본 것만으로도 만족하는 문제였다.


 F나 G번 같은 경우 단순 구현으로 문제에서 주어진 요구사항을 잘 처리해주면 큰 어려움 없이 쉽게 통과할 수 있다. 특히 F번 문제는 상당히 모호할 수 있는 부분이 많았다. 이런 유형의 문제들은 모든 조건이 잘 명시되어 있어야 하는데, 문제 특성상 그러기가 쉽지는 않다. 모호한 부분을 저격하여 데이터를 충분히 강하게 만들 수도 있다. 기업 채용 코딩테스트이기 때문에 어떤 의도로 출제된지는 충분히 이해할 수 있지만, 좋은 문제는 아니라고 생각한다. E번 문제에서는 전위순회와 후위순회를 재귀호출로 쉽게 구현할 수 있지만, 트리를 구성하기 위해 주어진 좌표를 파싱하는 방법이 조금 까다로워 개인마다 느끼는 난이도가 다를 수도 있다.

 C번 문제는 사실 A와 B번 다음의 난이도라고 생각한다. 하지만 대회 중에는 최소성의 의미를 정확하게 이해하지 못해서 조금 까다로웠다. 데이터베이스 수업을 듣지 않아서 그런지는 몰라도, 데이터베이스 이론에 등장하는 용어들의 이해가 부족하여, 문제에서 최소성의 의미를 인터넷에 검색도 해봤다. 최소성을 만족하기 위해서 유일성을 가진 키를 구성하는 속성 집합 중 하나의 속성을 제외하는 부분에서, 칼럼 하나를 제외하는 것인지, 원소 하나만 제외하는 것인지 매우 헷갈렸다. 만약 원소 하나만 제거하는 문제였다면 매우 어려웠을테고, 그래서 개인적으로 대회를 진행하는 동안에는 난이도가 2번째로 어려운 문제로 뽑았다.


 난이도를 보았을 때, 체감상 4문제가 커트라인으로 생각했지만, 실제로는 3문제를 풀어야 합격인 것 같다. 대회가 끝나고 며칠 뒤 카카오 기술 블로그에 올라온 해설을 보았는데 가장 쉬운 A, B를 제외하고 나머지의 문제 정답률이 10% 안팎이였다. 아마 다른 참가자들도 많이 어려워 했던 것 같다.



문제풀이 보러가기


댓글
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday