내 첫 코딩테스트
2020년 5월 9일 오후 2시에 인생 첫 코딩테스트를 카카오 코딩테스트로 보았다.
알고리즘을 제대로 공부한지는 3~4달 정도 되었고, 사실 카카오는 떨어질 각오를 하고 경험삼아 본 것이었다. 하지만 사실 엄청 긴장했다.
문제는 저작권때문에(아직 프로그래머스에 안올라왔음) 여기에 올릴수는 없고, 문제별로 간단히 어떻게 풀었는지 서술하려고 한다.
* 본인은 3솔이다.(3개품)
1번문제
1번은 그냥 생짜구현문제였다. 오른손과 왼손의 시작위치를 x y 좌표로 초기화하고, 번호를 누를 때마다 누른 손의 좌표를 업데이트 해가면서 풀면 되는 문제였다. 처음에 나는 y좌표만 생각하고 x좌표는 생각을 못하다가, 나중에 x좌표 까지 저장해가면서 풀었더니 금방 풀렸다. 맞추는데까지는 약 15~17분정도 걸린것 같다.
2번문제
2번문제는 스택을 이용한 계산문제였다. 2번문제를 구현하는데 시간이 제일 많이 들었던것 같다. 나는 문자열(숫자와 기호)을 처리하는 벡터2개와 스택 2개 총 4개 containor를 만들어서 구현했는데, 신경써야 할 부분들도 많고 코드량도 길어서 시간이 좀 걸렸던것 같다. 문제 풀때는 한시간정도 시간을 쓰다가 틀리고 다음문제로 넘어갔다. 그리고 5번문제를 걍 던진 후에 돌아와서 약 한 시간을 더 써가며 디버깅을 한결과 힘겹게 통과할 수 있었다.
3번문제
3번문제를 바로 푼게 이번 코테에서 가장 잘했다는 생각이 든다. 보자마자 set이랑 투포인터 알고리즘을 써야한다고 생각이 났고 바로 문제를 풀기 시작했다. set으로 우선 보석의 종류 갯수를 파악한다음에, 투포인터 알고리즘과 map을 이용해 보석을 전부 살수 있는 구간을 처음부터 끝까지 탐색을 하면 풀 수 있는 문제였다. map을 적용할 생각을 처음에는 못했다.(써본적이 많이 없음) 그래도 활용법을 레퍼런스 찾아가면서, 파이썬 dict 썼던 기억을 더듬어서 풀었더니 다행히 한번에 효율성까지 통과가 되었다.
4번문제
4번 역시 평소에 많이 풀어봤던 서칭 문제라, 문제를 보는 것과 동시에 풀이를 시작했다. dfs로 나는 풀이를 했는데, 평소 dfs를 많이 풀어봐서 구현 자체는 어렵지 않다고 생각했다. 약 15분정도만에 구현을 끝마치고 제출을 했는데 절반 정도가 시간초과가 났다. 직선도로는 100원, 코너도로는 500원 설치비용이 드는 문제였다. 코드를 고치다가 '코너 도로를 적게 쓰면 비용절감이 되지 않을까' 라는 생각에, 이미 탐색이 끝난 맵의 코너도로 개수를 센뒤, dfs 도중 그 값보다 코너도로가 커지면 중단하는 형식이면 시간초과를 줄이지 않을까 하고 생각하고 고쳐봤지만 여전히 틀렸었다. 테스트 끝나고 든 생각이, dp를 활용해 어느 구간에 도착하기까지 드는 최소비용을 메모이제이션 하면서 풀어보았으면 어떻게 됐을까 하는 생각을 해봤다.(물론 이걸 적용해도 틀릴 수도 있을거같다. 카카오에서 나오는 풀이를 봐야되겠다.)
5번문제
5번문제는 5~10분 보고 바로 던져버렸다. 동굴을 탐색하는 순서가 정해져 있어서, 위상정렬로 푸는 것인가 하고 생각이 들었지만, 공부했었던 위상정렬 문제들보다 구현하는데 아이디어가 당시 쉽게 떠오르지 않아 포기하고 바로 2번을 고치는데 시간을 쏟았다.
전체 후기
총 3문제를 풀었고, 아쉬움은 딱히 없다. 4번 문제까지 솔브해냈으면 더 좋았을걸이란 아쉬움이 있지만 공부한 기간에 비하면 이정도면 나름 선방해 냈다고 생각한다. (시험 치기전 원래 3문제만 맞추자가 목표였음 ㅎㅎ..) 합격컷이 어느정도 될지는 잘 모르겠지만, 이번에 떨어지더라도 졸업까진 아직 1년이 남았으니 실력을 더 키우면 나중엔 충분히 뚫어낼 만 할 것 같다는 생각이 든다.
그리고 다음 코딩테스트를 준비할때까지, 좀더 다양한 알고리즘들을 편식 안하고 풀어봐야겠다고 다짐했다. 어쨌든 첫 코딩테스트 후기는 이것으로 마친다.
'코딩일기' 카테고리의 다른 글
210106 백준 250문제를 풀고 느낀 점 (0) | 2021.01.06 |
---|---|
201119 겨울방학때 다시 공부할 알고리즘 리스트 (0) | 2020.11.19 |
200417 백준 200문제를 풀고 느낀점 (2) | 2020.04.17 |
백준 170문제를 풀고 느낀점 (0) | 2020.03.18 |
200305 프로그래머스 2단계 배지 획득! (0) | 2020.03.05 |