최근 2017년 Kakao Blind Recruitment 1차 문제 4개와 카카오페이 인턴 코딩테스트를 보면서 뭔가 느낀 점이 있습니다. 그건 제가 알고있던 알고리즘 개념이 크게 필요하지 않다는 점입니다. 굳이 뽑자면 BFS인데 사실 큰 개념도 아니고 깨닫지 않고 있을 뿐 BFS방식으로 푸는 분들도 많이 있을거라 생각합니다. 그리고 또 다른 느낀 점은 크게 어렵진 않지만 시간이 좀 걸린다는 것입니다. 결국은 꼼꼼하고 정확하게, 그리고 빠르게 푸는 것이 중요하다는 것을 깨닫게 되었습니다.
이렇게 출제하는 이유를 생각해보면 회사는 알고리즘 개념을 알아서 바로 풀 수 있는 사람보다는 구현력을 더 보기 위해서 그런 것이라 생각합니다. 그렇게 생각해보면 전략적으로 코딩테스트를 대비하기 위해 해야하는 것이 무엇인지 조금은 알 것 같습니다.
- 우선 문제를 고를 때는 구체적인 상황이 있는 것(이러면 문제가 길 가능성이 높음), 그리고 풀면서 여러 요구사항이 품어있는 문제를 푸는 골라야할 것 같습니다.
- 빠른 시간에 정확하게 구현하는 것이 목적이기 때문에 시간은 한 문제당 1시간을 넘지 않도록, 가능한 40분 이내에 풀 수 있도록 연습해야할 것 같습니다.
- 시간만 넉넉하면 어떤 코딩테스트 문제든 못 풀겠습니까. 연습은 실전처럼, 실전은 연습처럼 하기위해 그 문제를 푸는 때는 다른 것에 신경쓰지 않고 오로지 그것에만 몰두하는 연습을 해야할 것 같습니다.
- 시간 복잡도는 물론 문제를 풀면서 어느 정도 생각할 수 있겠지만 구현이 먼저라고 생각합니다. 위의 연습이 어느 정도 진행이 됐을 때 시간 복잡도를 고려할 수 있겠죠.
알고리즘 문제를 풀 때 맘 편히 넉넉하게 푸는 저의 모습을 반성하면서 글을 써봤습니다.