Skip to main content

코드트리로 코딩테스트 준비한 후기

· 13 min read

들어가며

코드트리로 코딩테스트를 준비한 후기를 적어보려고 한다. 코딩테스트를 준비하게 된 배경은 역시 이직 준비였다. 2023 후기에서 세웠던 To-Do List 중 두 번째가 “이직을 위한 이력서와 포트폴리오 준비”였는데, 다행히도 1월 첫째주에 달성했다. 덕분에 여러 회사에 지원할 수 있었고, 감사하게도 코딩테스트 기회를 얻게 되었다. 지금까지 코딩테스트를 제대로 준비한 적은 없었다. 컴퓨터 공학과 출신도 아니고, 현재 재직중인 회사의 입사 과정에도 코딩테스트가 없었다. 예전에 대학원 때 “파이썬 알고리즘 인터뷰” 책을 찍먹 수준으로 잠깐 봤었고, 작년에 “이것이 코딩테스트다” 책으로 스터디를 하긴 했지만 머릿속에 “흐릿한 개념”이 있는 수준이었다. 이직 준비를 빡세게 달려볼 생각이었어서, 일단 회사에 지원하고 코딩테스트 기회가 주어진다면 단기간에 몰입해서 준비할 예정이었다. 시험 기간 전날에는 집중력이 미친듯이 올라가는 것처럼, 비슷한 전략을 취하려 했다. 시간을 효율적으로 사용해야 하기 때문에, “빈출 유형”을 찾고 개념과 기본 구현을 익힌 다음에 백준에서 유형별로 문제를 풀어보는 정도로 준비하려고 했었다. 2-3일 정도 진행하던 중에, 현재 참여하고 있는 글또를 통해 코드트리를 사용할 수 있는 기회가 생겨서 신청했다. 백준이나 프로그래머스나 리트코드로도 충분히 준비할 수 있겠지만, 뭔가 새롭게 하고 싶은 마음도 있었고, 코드트리의 “실력 진단”이나 “깔끔한 개념 설명”이 마음에 들어서, 코드트리로 준비하는게 효율적이라고 판단했다. 지금 돌아보니 정말 좋은 선택이었다.

학습 방법

코드트리는 백준, 프로그래머스, 리트코드처럼 “코딩테스트”를 준비할 수 있는 플랫폼이다. 다른 점은 유료라는 것과 유료인만큼 “효율적으로 학습”할 수 있다는 점이다. 알고리즘 문제를 통해 나의 실력을 점검하고, 내 실력에 맞는 커리큘럼을 추천해준다. 문제는 해당 커리큘럼을 완벽하게 하려면 1-2달은 있어야 하는데, 나에게는 1-2주의 시간만 가능했다는 것이었다. 코드트리에서 별도로 추천해준 커리큘럼이 있긴 했지만, 그것 또한 시간이 많이 걸리기에 조금 따라하다가 포기했다. 대신, “기업별 커리큘럼”에서 “최다 빈출 유형”을 선정하고, 해당 유형 중에서도 가장 빈출이었던 3가지 유형을 공략하는 전략을 취했다. 어차피 전부 공부할 수는 없다고 생각했고, 최다 빈출인만큼 반드시 출제될테니 이것만큼은 꼭 맞추자는 생각이었다. 코테를 준비할 때마다 유형 1개씩에 대해 익힐 수 있다면, 3-4번의 코테를 보고 나서는 웬만한 문제는 맞출 것이라 생각했다.

그렇게 선정한 유형은 “완전 탐색”, “시뮬레이션”, “백트래킹”이었다. 어디선가 본 글에서 대부분의 알고리즘 문제는 “완전 탐색”으로 풀 수 있다고 했었다. 해당 글 덕분에, 알고리즘에 대한 큰 개념을 잡을 수 있었다. “알고리즘 유형을 트리 구조로 표현한다고 하면, 대부분의 경우 루트 노드에는 완전탐색이 있고, 그 밑으로 시뮬레이션, 백트래킹, 다이나믹 프로그래밍 등등이 생기는거구나. 탐색해야 할 n이 커졌을 때를 위한 세부적인 알고리즘이 자식 노드로 들어간다고 생각해도 되겠다!”라는 생각이었다. 뇌피셜이기에 틀릴 수도 있다.

이렇게 유형을 3가지로 좁혔지만, 유형들의 모든 문제들을 풀어보는 것도 불가능했다. 퇴근하고 매일 3시간씩 달리는 것은 불가능해서, 2시간 정도씩 준비했었는데 해당 시간으로는 역부족이었다. 따라서, 모든 문제를 풀어보지는 않고, 개념과 기본 구현 방법을 익히는데 집중한 이후에 실제 문제 풀이는 2-3개만 하는 방식으로 3가지 유형에 대해 학습했다. 참고로, 코드트리로 준비하기 전에는 백준을 활용했었다. 백준에서는 “투 포인터” 유형만 학습했었다.

코딩테스트 결과

일반적인 코딩테스트와, 면접에서 진행하는 라이브 코딩테스트를 포함해서 5번의 테스트를 치뤘다. 그 중 한 곳을 제외하고는 모두 통과했다. 준비했던 3가지 유형(완전 탐색, 시뮬레이션, 백트래킹) 중 1개 혹은 2개는 무조건 나왔고, 구현 문제도 꽤 많았다. 대부분 “알고리즘” 자체는 3가지 유형에서 1-2문제를 출제하고, 나머지 1-2개는 “구현” 문제를 출제했었다. 데이터 엔지니어 포지션이어서 그럴 수도 있고, 온라인 코딩테스트에서 ChatGPT를 완벽하게 막기가 어렵다보니 오히려 “구현”에 집중한 것 같기도 하고, 이유는 잘 모르지만 아무튼 그랬다. 그리고 라이브 코딩테스트에서는 더더욱 어려운 문제보다는, “투 포인터” 혹은 “완전 탐색” 유형이 정말 대부분이었다. “어떻게 사고하는가”, “어떻게 시간 복잡도를 더 줄일 수 있는가”, “문제를 이해하고, 로직을 생각하고, 코드로 쳐내는 과정을 빠르게 할 수 있는가”를 보려고 하는 것 같았다.

정리

코드트리를 통해 코딩테스트를 준비했던 것은 매우 탁월한 선택이었고, 너무 감사한 기회였다. 사용하면서 나중에 또 사용하고 싶어서, 실제 가격까지 알아볼 정도로 매우 만족했다. 가장 크게 느낀 장점들은 다음과 같다.

  1. 백준, 프로그래머스를 제대로는 아니지만 깨작깨작 사용했다보니 새로운 마음으로, 새로운 플랫폼을 사용하고 싶었다. 코드트리는 새로운 플랫폼이라는 점에서 일단 좋았다.
  2. 코드트리는 알고리즘을 실력별로, 유형별로 깔끔하게 분류했다. 그리고, 유형별로 “개념”, “기본 구현 방법”, “쉬운 문제부터 어려운 문제까지”가 모두 모아놓았다. 백준이나 프로그래머스를 사용할 때는 구글링과 함께 학습을 해야 했는데, 코드트리에서는 그런 수고를 덜 수 있었다. 즉, 시간을 효율적으로 사용할 수 있었다.
  3. 개념 설명이 매우 담백했다. 장황하게 설명하지 않고, 핵심만 설명했기에 빠르게 “어떻게 구현하는가”, “어떻게 문제에 적용하는가”로 넘어갈 수 있었다.
  4. 구현하는 방법을 알려주는 것도 좋았다. “검증된 코드를 익히자”라는 생각으로 일단 코드의 로직을 소화한 이후에 나의 것으로 다시 리팩토링 했다. 역시, 시간을 아낄 수 있었다.

만약, 자신이 아래에 해당한다면 코드트리로 코딩테스트를 준비하는 것을 고려해보는 것을 추천한다.

  1. 새로운 마음으로 새로운 플랫폼에서 코딩테스트를 준비하고 싶다.
  2. 코딩테스트를 처음 준비한다.
  3. 코딩테스트를 준비는 해봤지만, 느낌상 찍먹 수준이다. 공부는 했지만 막연한 느낌이 든다.

지금까지 코드트리로 코딩테스트를 준비한 후기였다. “글또”를 통해 좋은 기회로 무료로 “코드트리”를 사용할 수 있는 기회를 얻은 것은 맞지만, 반드시 좋은 후기를 남겨야 하는 것은 아니었다. 따라서, 위 후기는 리얼 100% 찐이다. 실제로 코드트리를 접한 이후 주변에서 코딩테스트를 준비해야 하는 사람들에게는 “금전적으로 여유가 있다면 한 번 써보는 것도 좋다!”라는 식으로 추천한다. 생각보다 마음을 먹어야 하는 금액이기에, 모두가 쉽게 하기는 어려울 것이라 생각한다. 하지만, 그만큼의 가치는 한다고 생각한다.

참고 자료