코드트리 알고리즘 문제 풀이 경험 공유: 효율적인 학습 전략과 성장 과정
다시 시작하는 알고리즘
약 2년 전, 개발자로서의 첫 발을 내딛기 위해 파이썬을 활용한 알고리즘 공부를 시작했다. 당시에는 백준, 해커랭크, 리트코드 등 다양한 플랫폼을 통해 문제를 풀며 실력을 쌓았고, 그 결과 코딩 테스트를 통과해 취업에 성공했다. 그러나 취업 후에는 스프링, 테스트 코드, 객체지향 프로그래밍 등 실무에 필요한 기술을 익히는 데 집중하면서 알고리즘 학습과는 거리가 멀어졌다. 게다가 최근에는 생산성 향상을 위해 GPT와 같은 AI 기술을 적극적으로 활용하면서 구현 역량이 많이 떨어졌음을 느꼈다.
2024년 목표 중 하나로 1주일에 알고리즘 세 문제를 풀겠다는 계획을 세웠지만, 어떤 문제를 풀지, 어떤 난이도에 도전할지 등 구체적인 목표 설정이 없어 잘 지켜지지 않았다. 2024년을 돌아보며 이러한 부분이 아쉬움으로 남아, 2025년에는 꾸준히 알고리즘 공부를 해보기 위해 세부 계획을 세우고 있었다. 그러던 중, 글또와 코드트리의 협업을 통해 코드트리 1개월 체험권을 선물 받았다. 지금 나에게 가장 필요한 선물을 어떻게 알고 주신 걸까? 정말 감사하다.
코드트리는 진단 평가를 통해 현재 나의 알고리즘 실력을 파악하고, 그에 맞는 문제를 추천해주는 시스템을 갖추고 있다. 이번 글에서는 코드트리를 한 달 동안 사용하면서 느낀 점들을 공유하고자 한다.
코드트리 시작
띠용 ?!
우선, 진단 평가를 통해 현재 알고리즘 실력을 파악할 수 있었다. 실무에서는 입출력을 자주 사용하지 않다 보니, 문제의 처음부터 막히는 경우가 많았다. 문제를 풀 때 Scanner보다 성능이 좋은 BufferedReader, StringTokenizer 등을 사용했던 기억이 나서 시도해보았으나, 자동완성이 없고 시간 제약이 있는 진단 평가 환경에서는 제대로 활용할 수 없었다. 첫 진단 평가를 통해 평소 개발에서 IDE의 자동완성과 자동 import에 얼마나 의존하고 있었는지를 깨달았다. 앞으로 한 달간 코드트리를 통해 기초 문제들을 IDE의 도움 없이 구현해 나가겠다는 다짐을 하게 되었다.
내가 느낀 장점
양질의 문제 제공
다른 알고리즘 플랫폼을 사용할 때는 당일에 풀고 싶은 문제 유형을 정하고, 나에게 적절한 난이도의 문제를 찾기 위해 시간을 많이 소모하곤 했다. 그러나 코드트리는 진단 평가 후 현재 나의 실력에 맞는 문제를 자동으로 추천해주어 이 과정이 훨씬 수월해졌다. 문제 난이도는 Novice Low부터 Intermediate High까지 다양하게 분류되어 있어, 자신의 실력에 맞는 문제에 집중할 수 있다는 점이 특히 마음에 들었다. 이러한 기능 덕분에 학습의 방향성을 명확히 잡을 수 있었고, 효율적인 학습이 가능해졌다.
코드 트리 난이도 체계
난이도 | 학습 내용 |
---|---|
Novice Low | 언어별 기초 문법 학습 |
Novice Mid | 기초 구현력 향상, 디버깅 (재귀함수, 시뮬레이션, 완전탐색 등) |
Novice High | 문제 해결에 자주 쓰이는 알고리즘과 자료구조 개념 (이진탐색, 스택, 큐, 해싱, DP, 그래프) |
Intermediate Low | BFS, DFS, DP 등의 알고리즘 학습 |
Intermediate Mid | Two Pointer, Parametric Search, Greedy, 최단거리 등의 기본적인 알고리즘 학습 |
Intermediate High | 트리, MST, 위상정렬, String 등의 알고리즘 학습 |
첫 진단 평가 후, 25개의 Novice Low 문제를 풀면서 자바 언어의 기초 문법과 입출력을 다시 익히는 데 큰 도움이 되었다. 선택한 실력 유형과 퀴즈를 통해 맞춤형 레슨도 제공받았다. 퀴즈 결과, Intermediate Low 수준에서 백트래킹 문제를 푸는 것이 좋겠다는 추천을 받았다.
중간에 퀴즈를 보고, 매주 진단 평가를 통해 부족한 부분을 빠르게 파악할 수 있었다. 이를 통해 알고리즘을 효율적으로 학습할 수 있겠다는 확신이 들었다. 업무나 학습에서 자신의 실력보다 너무 낮은 문제는 지루하고, 너무 높은 문제는 어려워 흥미를 잃기 쉬운데, 코드트리는 문제의 난이도가 잘 분류되어 있어 자기 실력에 맞는 문제를 풀 수 있는 것이 큰 장점이라고 생각한다.
나의 경우엔 퀴즈를 통해 추천받은 Intermediate Low 레벨의 문제는 하나를 푸는 데 시간이 꽤 걸렸다. 지금은 구현 역량을 키울 수 있는 시뮬레이션 유형 문제에 집중하고 싶었고, 꾸준히 풀기 위한 흥미를 가져야 하는 시기라고 생각해 Novice Mid 난이도 문제를 풀어가고 있다.
문제를 푸는데 집중할 수 있는 UI/UX
문제와 제출 페이지 간의 이동이 불필요하여 사용자 경험이 매우 좋았다. 특히, 코드가 통과하지 못했을 때 어떤 테스트 케이스에서 오류가 발생했는지 바로 확인할 수 있어, 반례 케이스를 떠올리지 못할 때 매우 유용했다. 이러한 기능 덕분에 문제 해결에 더욱 집중할 수 있었다.
학습 구조
코드트리는 개념 학습 후 문제 풀이 방식으로 구성되어 있어 학습 효율을 크게 높였다. 알고리즘 문제는 유형이 다양해 시간이 지나면 공부했던 내용을 잊기 쉽다. 이때, 문제를 어떻게 풀었는지 다시 찾아보는 데 시간이 걸려 문제 풀이에 집중하기 어려운 경우가 많았다. 그러나 코드트리는 기본 개념을 먼저 학습하고, 연습문제와 테스트 문제를 통해 문제 풀이에 대한 감을 빠르게 잡을 수 있도록 돕는다. 나에게는 알고 있던 알고리즘 개념을 복습하는 데 매우 적합했다.
개념 학습의 내용도 큰 도움이 되었다. 특히, 십진수와 이진수 간 변환 문제를 풀 때, 변환 메서드 대신 원리를 설명하며 문제를 풀어나갈 수 있도록 개념 설명이 되어 있어 따로 검색할 필요가 없었다. 이는 어느 블로그보다 퀄리티가 높은 내용을 제공해 주었다. 다른 플랫폼보다 코드트리에서 이진수, 소수, 달력 등 알고리즘 문제에 대한 기본 개념을 더 효율적으로 배울 수 있었다고 생각한다.
내가 느낀 단점
Vim 지원 부족
리트코드나 해커랭크처럼 에디터 모드에 Vim이 있었으면 좋겠다는 작은 아쉬움이 있다. 실제 코딩 테스트 환경에서 Vim을 제공하는 경우는 드물지만, Vim 사용에 익숙한 사용자에게는 불편함을 줄 수 있다. 현재는 코드트리 내 에디터에서 코드를 작성할 때 답답함을 느껴, IDE에서 자동완성을 끄고 문제를 풀고 있다.🥲
시스템 개편 후 초기 불편함
1월 초 시스템 개편 직후, 문제 조회와 코드 실행 속도가 상당히 느려졌다. 또한, 간헐적으로 “코드를 실행 중입니다” 상태에서 멈추거나, 채점이 0%에서 진행되지 않는 버그들이 발생했다. 그러나 코드트리 측의 신속한 대응 덕분에 2~3일 후부터는 쾌적하게 사용할 수 있었다. 디스코드 채널을 통해 서비스 피드백과 버그 리포팅이 가능하여, 이러한 작은 불편함들은 빠르게 해결될 것으로 생각된다.
마무리
현재 Novice Mid 문제 중 필수 문제를 필터링하여 10개의 챕터 중 5개를 완료했다. 한 달 전에는 문제를 거의 못 풀었지만, 이제는 코드트리 덕분에 시간 제약이 있어도 학습한 개념을 활용해 레벨 6까지 빠르게 풀 수 있었다. 그러나 아직 학습하지 않은 단원에서는 문제를 통과하는 데 시간이 걸리고 코드트리 기준으로 빅테크 기업의 코딩 테스트 패스 레벨이 11 이상이기 때문에 아직 갈 길이 멀다고 느꼈다. 앞으로도 열심히 해보자! 💪💪💪