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++에 비해서 코드의 절대적인 양을 확 줄여준 것 같았다. 좀더 내가 생각하는 대로 직관적으로 짜기 쉽다 라는 느낌? 다들 킹갓썬 하세요 엉엉ㅠ
- 그리고 대망의 결과는...
와씨..ㅠㅠㅠ
2차 준비 열심히 하자!
* 다음에 문제 공개되면 코드도 공개하겠슴다!
아래는 카카오 2차 코테 후기
2020/10/04 - [공부/기록] - 2021 카카오 신입 공채 2차 코딩테스트 후기
'공부 > 기록' 카테고리의 다른 글
2021 상반기 라인 신입 공채 1차 면접 후기 (6) | 2021.04.29 |
---|---|
공식 문서를 볼때는 영어로 보자! (0) | 2021.02.28 |
2021 카카오 신입 공채 1차 면접 후기 (12) | 2020.11.20 |
2021 카카오 신입 공채 2차 코딩테스트 후기 (46) | 2020.10.04 |
2021년 6월 2일 기준 안전교육 이수 스킵 코드 (32) | 2019.06.24 |