본문 바로가기

Job searching

2022 KAKAO BLIND RECRUITMENT 1차 코딩테스트 후기

이제는 다들 크게 관심 없을 2022 카카오 1차 코딩테스트의 후기를 뒤늦게 써본다.

밀린 일기 쓴다는 생각으로 말이다. 그래서 문제가 가물가물한데 최대한 그때 당시 느낌을 써보려 한다.

2주 정도 지난 거 같은데 어제 2차 코딩테스트를 봤으니 참 시간이 빠르다. 

그리고 2차는 아마... 안될 거 같다.

 

1번 AC

문자열 파싱 + map 자료구조

어떤 유저가 신고한 불량유저가 일정 횟수 이상 신고된 경우 신고한 유저들에게 문자를 보낸다.

그러면 각 유저별로 몇 번 문자를 받을지 구하는 문제였을 거다. 

그냥 문자열 파싱하는 카카오 코테 1번 문제답다 하는 느낌이었다. 중복을 고려해야 했던 거 같다.

 

2번 AC

[3, 10]의 k진법 변환 + 소수 판정

100만? 이하의 10진법 수를 k진법으로 변환시켜 해당 부분 문자열에서 조건을 만족하는 소수 찾기

조건을 보고 저게 뭔가 했는데 문득 0으로 split해서 나온 문자열들에 대해서 소수 판정을 하면 될 거 같다는 생각을 했다.

소수 판정은 에라토스테네스의 채로 진행했고 처음에는 배열에 arr[k] : k의 소수 여부와 같은 식으로 저장하려 했는데 런타임 에러가 뜨더라.

알고 보니 그렇게 하면 배열 사이즈가 한계를 훌쩍 넘어버리는 거 같았다.

그래서 메모리에 넣지 않고 검사하도록 코드를 수정했다. 그랬더니 AC가 나왔다.

 

3번 AC

문자열 파싱 + map 자료구조

주차장 입차 출차 기록으로부터 주어진 공식을 이용해서 주차 정산비를 구하는 문제였다.

동일한 차량에 대해 입차 출차가 여러 번 일어날 수 있음에 주의하면 될 거 같다.

처음에 이 점을 고려 못해서 TC 몇 개가 틀렸었다.

4번 AC

완전탐색 + 그리디(?)

이상한 규칙의 양궁 문제다. 어피치가 적이었나 그랬던 거 같고 

라이언이 규칙에 따라 조건을 만족하면서 어피치를 최대 점수차로 이기는 경우의 수를 구하는 문제였던 거 같다.

개인적으로는 해메었다. 지문도 되게 길었고 규칙도 복잡하고. 중간에 안 풀려서 6번 정확성이라도 긁으러 갔다.

 

그러고 지문을 다시 천천히 읽어봤더니

조건을 만족하려면 10점부터 줄줄이 어피치(?)보다 1개씩만 더 쏘면 되고 만약 화살이 남으면 0점에 전부 쏘면 되는 게 아닌가 싶었다.

하지만 어피치가 점수마다 맞춘 화살 수가 다르기 때문에 일일히 경우를 살펴보며 적당한 점수대를 잘 골라야 한다.

다행히 모든 경우의 수가 10!가지여서 완전탐색을 하면 될 거 같았다. 

 

라이언(?)이 이기는 과녁의 점수를 골라서 소모되는 화살 수(어피치보다 하니씩 만 더)를 합쳐서 라이언이 가지고 있는 화살로 충당이 되는지 체크하고 만족하면 남은 화살을 전부 0점에 쏴버리면 된다.

그런 케이스에서 가장 점수차가 큰 값이 답이다.

 

돌아보면 그렇게 어려운 문제가 아니었을텐데 당시엔 너무 어렵게 느껴졌다. 실력부족이었겠지.

 

5번 WA

트리 DP인가? 싶어서 1,2,3,4번 다 풀고 6번 정확성만 긁고 시간 얼마 안 남았을 때

혹시나 봤었는데 잘 안풀릴 거 같았고 역시나 안되었다.

후기들 보니까 테스트 케이스 크기가 작아서 완전탐색 + 비트마스킹으로도 풀린다더라.

그래도 트리 DP는 여유있을 때 공부해야지.

 

6번 정확성 O

이번 코테의 정확성 + 효율성 문제.

정확성이야 그냥 시키는대로 2차원 배열 선언해서 갱신하고 조건 만족하는 칸들 수 구하면 된다.

배열 최대 너비나 높이가 100만이었던가 그래서 당연히 시간 초과다.

아 이거 어떻게 구하지 2차원 세그먼트 트리인가? 혼자 헛소리 하다가 효율성은 못풀었다. 

후기 보니까 누적합 문제로 유명한 유형이라고 한다. 봐 둬야겠다. 

 

7번 WA

게임이론 같은데 보지도 않았다. 내 실력이 부족함을 느꼈다.

이것도 경우의 수가 작아서 백트래킹으로도 풀 수 있다는 얘기가 있더라.

 


 

결과적으로 1,2,3,4,6 정확성으로 4.5 솔이었고

사실 여기저기서 쉽다는 얘기가 많이 나와서 5~6 솔이 컷이겠거니 했다.

 

그런데 운이 좋게도 일주일 뒤, 17일 저녁에 합격 메일을 받았다.

사랑합니다

아무래도 4.5 솔이 보편적인 커트라인이었던 거 같다.

5,6,7번 중 하나를 풀었으면 4 솔이어도 붙었다는 얘기도 있었던 거 같다.

 

예전에 개발 공부 시작할 때는 쳐다보지도 못할 문제들을 풀었고 턱걸이로라도 올라갔다는 사실이 기뻤다.

2차 결과는 비관적이지만 다른 회사들도 열심히 준비해서 좋은 결과를 얻을 수 있기를 바라는 수밖에.