카카오블라인드 1차 코테 후기

2019년 9월 7일 토요일 오후 2시부터 저녁 7시까지 5시간동안 카카오블라인드 코딩테스트 1차를 봤다. 완벽히 조져졌다.
조져졌다.완벽히.. 총 7문제 300분, 1문제당 약 40-50분정도 잡고 풀어야했다. 나는 3.5문제를 풀었다.
문제 자체는 전반적으로 뭔가 실제로 업무 중 마주칠 수 있는 사례를 녹여내려고 한 느낌이었다. 그래서 그런지, 지문도 길고 조건들도 조금 까다로운 느낌. 전반적으로 프로그래머스의 lv2-lv3 느낌의 문제에 조건들이 좀 더 까다로운 것 같았다. 하지만 내가 lv2-lv3 문제들을 세월아 네월아 풀었던 사실을 잊고있었다.
간단하게 느낌만 기억해두고, 나중에 문제 올라오면 다시 꼭 풀어봐야겠다.

1번문제

스트링 처리문제. 결국 거의 전체탐색을 해야 했었다. 처음에 감이 잘 안와서 나중에 급하게 풀었는데, 빠른 시간에 풀리는 문제였다.

2번문제

올바른 괄호 짝맞추기문제의 응용문제 느낌이다. 괄호짝 찾는 부분은 stack으로 구현하고, 나머지는 시키는 알고리즘대로 구현만 하면 쉽게 풀렸다.

3번문제

Bingo 문제같은 느낌이었다. 지문을 읽는데 시간을 썼는데, 스크롤내리니 그림이 있었고 그림을 보니 직관적으로 이해가 갔다. 그리고 이 문제에서 시간을 굉장히 많이쓴 것 같다. 열쇠를 90도로 상하좌우로 가능한 이동을 모두 계산해서 lock이 모두 1이면 pass하도록. 어떻게 풀어야 할 지는 바로 감이 왔는데, 열쇠를 상하좌우로 이동한다음에 상대좌표/절대좌표로 lock과 key계산하는 부분에서 시간을 참 많이썼다. 5분남기고 통과시켰는데 변수에 실수한부분이 있었다. 이 문제 풀면서 내가 2차원이상 배열 구현이 많이 약하다는 걸 느꼈다. 이런 행렬이나 그래프는 연습이 아직 많이 필요한 것 같다.

4번문제

정확성은 쉽게 패스했으나, 효율성은 5케이스 중 2번째 케이스를 끝까지 통과하지 못했다…..
전체탐색으로 처음에 정확성 pass, 효율성 fail
-> 단어를 길이별로 dictionary에 저장해서 탐색과정을 줄임, 효율성 2 추가 pass, 1 fail
-> 중복된 단어가 나올 수 있다고 해서 검색유무를 저장하도록 구현하였으나 여전히 효율성 fail이었다.
뭔가 시작/끝 탐색할 때에 사전처럼 index가 있어야하나? 이 과정에서 줄여야할 것 같은데.. 여기까지 풀고 5시간이 끝났다.

5번문제

기둥, 보를 세우는 문제인데, 3번문제처럼 2차원 배열을 활용해야할 것 같은데 왠지 시간이 많이 걸릴 것 같아서 그냥 풀지 않기로 결심했었다.

6번문제

stack? queue? 문제 자체는 간단했는데, 도무지 아이디어가 떠오르지 않았다. 매달리진 않았고 아이디어가 떠오르면 풀어야겠다고 했으나, 아이디어를 떠올릴 틈조차 없었다.

7번문제

DP를 활용한 등굣길 과 비슷한 느낌이었는데, 계산의 단위가 1x2 칸이었다. 이것 역시 아이디어를 떠올릴 틈이 없었다.

5,6,7번 문제는 문제는 읽었으나 생각/구현이 오래걸릴 것 같아서 그냥 풀 수 있는 문제에 집중하기로 했다. 이렇게 갈기갈기 찢겨진 후.. 오늘 아침에 일어나자마자 7번문제가 아른거렸다..(하아.. 어떻게 계산하는거지?) 공식으로 본 코딩테스트는 이게 처음이었다. 아직 갈길은 멀지만, 조급해하진 않고 계속 공부할거다. 그리고 하면 될것같다.