ENAN

Developer, Artist, Traveler

공부/기록

2021 카카오 신입 공채 1차 코딩테스트 후기

ENAN 2020. 9. 18. 22:24

2021 카카오 신입 개발자 공채 1차 코딩테스트에 참여해본 후기를 적으려 한다!

 

개요

2020.09.12 (토) 오후 2시~7시 반까지 치뤄졌고
( 원래 7시까지였으나 채점 서버 통신 문제로 30분 연장 )
문제 수는 총 7문제였다.
저번 카카오 인턴 채용때도 코테를 봤었는데, 그때는 준비도 안했고 당연히 쓴맛을 봤었다.
이번에는 그래도 간간히 준비를 좀 했던 탓인지 그때보단 비교적 수월하게 푼 것 같다!
내가 성장한 건지 그냥 저번 인턴 채용때 문제보다 쉬웠던 건지.. (체감상 그랬음..)

문제

1번 문제는 정말 단순한 구현 문제! 시키는 대로 문자열을 조작하기만 하면 되었다.
다만 특수문자를 거르는 곳에선 좀 어렵게 생각했는지 정규식으로 걸렀는데,

친구들 얘기를 들어보면 그냥 한글자씩 비교해가면서 허용되는 문자인지 아닌지 판단했다고 한다.
뭐 어떤 방법이든 상관없었을듯!


2번 문제도 그렇게 어려운 문제는 아니었다. 조합을 잘 활용하면 어렵지 않게 풀 수 있던 문제!
단품 주문 내역을 보고 가장 많이 '함께' 시킨 n개의 메뉴를 세트로 묶어서 팔겠다는 문제였다.

먼저 주문한 품목 중 n개를 뽑는 경우들을 조합을 활용해서 구한 다음,
뽑아진 단품들로 이루어진 튜플을 키로 사용한 해시 맵에 개수를 저장했다.
그리고 최대값을 구해 출력하면 끝!
여기서 한번 헤멨던 곳은, (X,Y) 랑 (Y,X) 랑 같은 세트로 쳐야 하기 때문에 처음에 알파벳 순으로 한번 정렬해줬다!

 

3번 문제는 효율성에서 조금 생각을 했어야 했던 문제였다. 실제로 내 주변 (나와 비슷한 수준의) 사람들 얘기를 들어봐도 3번 효율성을 통과하지 못했다는 얘기가 많았다.
지원자들의 사용 언어(cpp,java,python), 지원 분야(front / back), 경력 여부(신입/경력), 좋아하는 음식(치/피) 등의 정보와 점수가 입력되고, 특정 조건의 지원자를 찾는 쿼리 (ex - java back 경력 상관없고 pizza 점수 140점 이상) 를 입력받아서 조건에 맞는 지원자가 몇 명이나 되는지 출력해야 한다.


정확성은 그냥 입력된 값들 파싱해서 저장한 다음, 똑같이 쿼리 파싱해서 저장된 값들 중 조건에 맞는 값을 하나하나 찾으면 된다.
나는 언어를 1000번대, 지원 분야를 100번대, 경력 여부를 10번대, 음식을 1번대로 나눠서 숫자로 파싱했다. (python front junior pizza 의경우 3112 와 같이 - 사실 지금 생각해보면 그닥 필요 없는 작업인데
그리고 그 숫자를 키로 하고, value는 점수들의 배열로 된 해시맵을 만들어 지원자 정보를 저장했다.


나는 이렇게만 해도 효율성을 통과할 거라고 기대했으나 아니었다. 
효율성을 통과하기 위해서는 점수별로 정렬해준 뒤 이분 탐색을 이용해 좀 더 탐색 시간을 빠르게 가져가야 했다.
이쯤에서 이미 뭔가 좀 이상하게 저장한 것 같은데 싶었지만..어쨌든 그냥 해시맵 안의 value (배열) 들을 각각 정렬하고 이분 탐색을 사용해 인덱스를 찾으니 효율성을 통과할 수 있었다! 

 

4번 문제까지 올 줄 몰랐지만 오히려 생각보다 빠르게 풀렸다.
a와 b가 시작점 부터 집까지 택시를 타고 가는데, 처음에는 택시를 같이 타고 가다가 중간에 어디서부터 각자 택시를 타고 가야 돈을 최소한으로 낼 수 있냐는 문제였다.
요지는 시작점부터 어떤 점 c까지 최소금액(최단거리) + c 에서 a 집까지 최소금액 + c 에서 b까지 최소금액 를 더하면 최종 최소 금액을 알 수 있다는 건데, 그냥 모든 점으로부터 시작점과 a집과 b집까지 금액을 안다면 각 점마다 그 합을 더해서 최소값을 뽑으면 된다. 
주변에선 대부분 다익스트라로 풀었던 것 같은데 n 이 충분히 작은 걸 보고 안심한 (얍삽한) 나는 바로 플로이드를 돌렸다 ㅋㄷㅋ
사실 이건 n이 조금만 컸어도 플로이드로는 못 풀 수 있는 문제였을텐데..아닌가? 아무튼 운이 좋았다. 

 

5,6,7번 문제는 시간이 조금밖에 안남았으면 그냥 포기했을 텐데, 연장 포함 한시간 반 정도 남았어서 시도는 해 보았다 (못풀었다는 얘기). 글만 읽어도 4번까지는 워밍업이었나 싶을 정도로 난이도가 확 올라간게 느껴졌다. 직감적으로 컷이 4개 언저리에서 멈출 거라는걸 느꼈다.

 

후기 및 결과

- 음..우선 다 풀고 난 느낌은 '엥 어케 4개나 풀었지?' 에 가까웠다. 지금까지 코테 본 거 중에선 반 이상 맞은게 처음이니까 ㅋㅋㅋㅋ 
그러고 나서 드는 생각은 '역시 쉽게 나온거겠지?' 였다! 반응 보면 그동안 카카오에서 보여줬던 난이도에 비해 높은 편은 아닌 것 같다.


- 사실 지금까지는 코테 준비를 c++로 하기도 했고 (그것보다 그냥 준비를 안하기도 했고), 이번에는 처음으로 파이썬과 코틀린으로 준비해서 파이썬으로만(ㅋㅋㅋㅋ) 풀었다. 생각보다 파이썬이 c++에 비해서 코드의 절대적인 양을 확 줄여준 것 같았다. 좀더 내가 생각하는 대로 직관적으로 짜기 쉽다 라는 느낌? 다들 킹갓썬 하세요 엉엉ㅠ

 

- 그리고 대망의 결과는...

2021 카카오 블라인드 채용 코테 1차 합격!

와씨..ㅠㅠㅠ

감격..

2차 준비 열심히 하자!

 

* 다음에 문제 공개되면 코드도 공개하겠슴다!

 

아래는 카카오 2차 코테 후기

2020/10/04 - [공부/기록] - 2021 카카오 신입 공채 2차 코딩테스트 후기

 

2021 카카오 신입 공채 2차 코딩테스트 후기

2021 카카오 신입 개발자 공채 2차 코딩테스트에 참여해본 후기를 적으려 한다! 카카오 1차 코테 후기는 아래 링크 2020/09/18 - [공부/기록] - 2021 카카오 신입 공채 1차 코딩테스트 후기 2021 카카오 신

enant.tistory.com