CodeTree(코드 트리) - DP

2026. 5. 31. 21:56·알고리즘(Algorithm)
728x90
반응형

[코드트리] 시뮬레이션 알고리즘 약점 극복 학습 후기

지난 글에서는 코드트리 No Free Lunch 2026 청약챌린지를 시작하면서 갭체크를 진행했고, 그 결과를 통해 내 현재 위치를 확인했다. 당시 가장 크게 느낀 점은 “아는 문제는 확실히 풀지만, 모르는 유형은 접근조차 못 한다”는 것이었다. 특히 시뮬레이션 유형에서 그런 약점이 분명하게 드러났다.

그래서 이번에는 코드트리의 Trail1을 따라가며, 내가 약하다고 느낀 시뮬레이션 유형을 중심으로 학습을 진행해 보기로 했다.

  • 코드트리 Trail: https://www.codetree.ai/ko/trail-info
  • No Free Lunch 2026 청약챌린지: https://www.codetree.ai/ko/no-free-lunch-2026

코드트리 커리큘럼을 따라가며 느낀 점

코드트리 커리큘럼을 따라가면서 느낀 가장 큰 장점은 레슨 단위의 구조가 꽤 명확하다는 점이었다. 단순히 문제 목록이 나열되어 있는 것이 아니라, 기본 개념을 익히고, 연습 문제를 풀고, 마지막에 테스트 문제로 확인하는 흐름이 있었다. 이 구조 덕분에 내가 어떤 개념을 알고 있는지, 어느 지점부터 막히는지를 비교적 쉽게 확인할 수 있었다.

특히 시뮬레이션 문제를 풀 때 이 구조가 도움이 되었다. 처음에는 시뮬레이션이라는 말 자체가 어렵게 느껴졌다. DP나 그래프처럼 이름부터 복잡한 알고리즘은 아니지만, 막상 문제를 읽으면 조건이 길고, 예외 상황이 많고, 구현 순서를 잡기 어려웠다. 그래서 오히려 “무슨 알고리즘을 써야 하지?”보다 “이걸 코드로 어떻게 옮기지?”에서 더 많이 막혔다.

시뮬레이션 문제를 보며 달라진 풀이 감각

Trail1을 진행하면서 조금씩 알게 된 것은, 시뮬레이션 문제는 대단한 공식보다 문제의 흐름을 정확히 따라가는 능력이 중요하다는 점이었다. 날짜와 시간 계산, 좌표 이동, 구간 처리, 2차원 배열에서의 변화처럼 문제에서 요구하는 상황을 하나씩 변수와 조건문으로 바꿔야 했다.

예전에는 문제를 읽고 바로 코드를 작성하려고 했지만, 이제는 먼저 입력값이 어떤 의미인지, 어떤 순서로 상태가 바뀌는지, 반복문 안에서 무엇을 갱신해야 하는지를 정리하려고 한다.

기본 문제를 풀 때는 “이 정도는 할 수 있겠다”는 느낌이 있었지만, 연습 문제로 넘어가면 같은 개념이 조금씩 변형되어 나왔다. 이때부터 단순히 문법을 아는 것과 문제를 해결하는 것은 다르다는 것을 느꼈다. 예를 들어 배열 문제를 풀 때도 단순히 값을 저장하고 출력하는 것은 어렵지 않지만, 2차원 배열에서 특정 위치를 기준으로 이동하거나, 조건에 따라 값을 바꾸는 문제는 훨씬 더 신중하게 접근해야 했다.

테스트 문제에서는 풀이 감각이 조금 달라졌다는 것을 느꼈다. 예전 같았으면 조건이 긴 문제를 보면 바로 막혔을 텐데, 이제는 문제를 작게 나누려고 했다. 먼저 변수로 관리해야 할 값이 무엇인지 정하고, 반복문이 몇 번 돌아야 하는지 생각하고, 조건문은 어떤 순서로 검사해야 하는지 정리했다. 물론 아직 한 번에 깔끔하게 풀지는 못하지만, 적어도 문제 앞에서 멈춰버리는 시간이 줄어든 것은 분명했다.

해설과 모범코드를 보며 느낀 점

코드트리의 해설과 모범코드도 도움이 되었다. 내가 작성한 코드는 처음에는 조건을 너무 복잡하게 나누거나, 불필요한 변수를 많이 만드는 경우가 있었다. 그런데 모범코드를 보면 같은 문제를 더 단순한 흐름으로 해결하는 경우가 많았다.

특히 시뮬레이션 문제에서는 코드가 길어질수록 실수할 가능성이 커지기 때문에, 상태를 어떻게 단순하게 관리하는지가 중요하다는 것을 배웠다. 해설을 보면서 단순히 정답을 확인하는 것보다, 내 풀이와 비교하며 “어디서 복잡해졌는지”를 돌아볼 수 있었다.

다른 학습 서비스와 비교해보면

다른 학습 서비스와 비교했을 때, 백준은 다양한 문제를 많이 풀기에는 좋지만 처음 약점을 잡고 공부하기에는 어디서부터 시작해야 할지 막막할 때가 있었다. 프로그래머스는 문제 설명이 친절한 편이지만, 기초부터 유형별로 쌓아가는 흐름은 상대적으로 약하게 느껴질 때가 있었다.

반면 코드트리는 갭체크로 현재 상태를 확인하고, Trail과 레슨을 통해 부족한 부분을 단계적으로 학습할 수 있다는 점이 좋았다. 지금 내 상황처럼 “아는 건 아는데 모르는 유형에서 멈추는 사람”에게는 꽤 잘 맞는 방식이라고 느꼈다.

앞으로의 학습 계획

이번 학습을 통해 시뮬레이션을 완전히 잘하게 되었다고 말하기는 어렵다. 여전히 조건이 길고 예외가 많은 문제를 만나면 시간이 오래 걸린다. 하지만 이전과 달라진 점은, 이제는 문제를 보고 바로 포기하기보다 조건을 하나씩 분해해서 생각하려고 한다는 것이다.

앞으로도 Trail1을 마무리하면서 기본 문법, 반복문, 배열, 2차원 배열, 시뮬레이션 문제를 계속 정리할 예정이다. 그리고 Trail2로 넘어가기 전에 내가 자주 막혔던 문제들은 다시 풀어볼 생각이다.

이번 챌린지의 목표는 단순히 문제 수를 채우는 것이 아니라, 모르는 유형을 만났을 때도 접근 방법을 떠올릴 수 있는 힘을 기르는 것이다.

마무리

갭체크를 통해 내 약점을 확인했고, Trail1을 통해 그 약점을 하나씩 채워가고 있다. 아직 갈 길은 멀지만, 적어도 지금은 내가 무엇을 모르고 있는지 알고 있다. 그 점에서 이번 코드트리 청약챌린지는 좋은 출발점이 되고 있다.

728x90
반응형
저작자표시 (새창열림)

'알고리즘(Algorithm)' 카테고리의 다른 글

CodeTree(코드 트리) - Trail 1부터  (0) 2026.05.21
[LeetCode] 1011.Capacity To Ship Packages Within D Days [JS]  (1) 2024.10.24
[LeetCode/CodeWars] - Two Sum [JS]  (0) 2023.02.21
[CodeWars] Give me a Diamond [JS / 6kyu] 다이아 찍기  (0) 2023.02.16
프로그래머스 - 영어 끝말잇기[JS]  (0) 2023.02.12
'알고리즘(Algorithm)' 카테고리의 다른 글
  • CodeTree(코드 트리) - Trail 1부터
  • [LeetCode] 1011.Capacity To Ship Packages Within D Days [JS]
  • [LeetCode/CodeWars] - Two Sum [JS]
  • [CodeWars] Give me a Diamond [JS / 6kyu] 다이아 찍기
Hun-bot
Hun-bot
IT를 중심으로 다양한 것
  • Hun-bot
    로봇이 만드는 눈사람
    Hun-bot
  • 전체
    오늘
    어제
    • All Article (132)
      • Programmers (6)
        • TIP (1)
        • SQL (2)
        • LV1 (1)
        • LV2 (2)
        • LV3 (0)
      • Baekjoon (31)
        • Bronze (10)
        • Silver (19)
        • Gold (2)
        • Platinum (0)
        • Diamond (0)
      • Leetcode (0)
        • Easy (0)
        • Medium (0)
        • Hard (0)
        • SQL (0)
      • 알고리즘(Algorithm) (44)
      • JavaScript (40)
      • Linux (7)
      • JSP (1)
  • 블로그 메뉴

    • 링크

    • 공지사항

    • 인기 글

    • 태그

      Algorithm
      codetree
      알고리즘 #Algorithm
      Programmers
      JS #프로그래머스 #숫자의표현 #알고리즘
      코드트리후기
      코딩테스트
      JS #JavaScript #프로그래머스 #카카오
      코드트리
      티스토리챌린지
      오블완
      SQL
      자바스크립트
      BaekJoon
      프로그래머스
      프로그래머스 #자바스크립트 #JS
      자바스크립트 #연습문제
      JS #정규표현식
      Python #알고리즘
      async await #js #문법 #자바스크립트 #비동기
      Vue #Vue.js #정리
      알고리즘
      JS #JavaScript #프로그래머스 #알고리즘
      Javascript
      c++
      갭체크
      리눅스
      JSP #Vscode #톰켓 #Tomcat #Java #Web #jdk
      JS #클래스
      LeetCode #JS #Javascript #Algorithm
    • 최근 댓글

    • hELLO· Designed By정상우.v4.10.3
    Hun-bot
    CodeTree(코드 트리) - DP
    상단으로

    티스토리툴바

    티스토리툴바