코드트리 직접 코딩 감각 유지기 2. 백트래킹 전에 파이썬 기초를 다시 확인했습니다
이 글의 핵심은 백트래킹 약점을 확인한 뒤 난이도를 올리는 대신, 약점을 지탱하는 Python 기초 흐름부터 점검한 과정입니다.
1편에서는 CodeTree 갭체크로 백트래킹 약점을 확인했습니다.
조건문, 시뮬레이션 I, 완전탐색 III는 한 번의 시도로 해결했습니다. 반면 Backtracking 두 문제는 모두 시도하지 못했습니다. 이 결과는 전체 기초가 무너졌다는 뜻이 아니라, 재귀 기반 선택과 상태 복구 구조가 아직 손에 붙지 않았다는 신호였습니다.
그래서 이번에는 바로 어려운 백트래킹 문제로 가지 않았습니다. 먼저 Trail 0 Codetree 101과 Trail 1 Novice Low의 프로그래밍 기초로 내려가, 입력·변수·조건·반복 흐름을 다시 확인했습니다.


먼저 용어를 나누니 기초로 내려간 이유가 분명해졌습니다
이번 글에서 말하는 기초는 쉬운 내용을 다시 본다는 뜻만은 아니었습니다. 백트래킹을 구현하기 전에 필요한 입력 처리, 상태 저장, 조건 판단, 반복 흐름을 다시 확인한다는 뜻이었습니다.
| 용어 | 쉬운 설명 | 백트래킹과의 연결 |
|---|---|---|
| Trail | CodeTree의 단계형 학습 경로입니다 | 다음에 무엇을 볼지 정하는 부담을 줄여줍니다 |
| 입출력 | 문제의 입력을 읽고 요구한 형식으로 출력하는 과정입니다 | 출력 형식이 흔들리면 탐색 결과도 정확히 제출하기 어렵습니다 |
| 변수 | 값을 이름 붙여 저장하는 공간입니다 | 선택한 값과 현재 상태를 기록할 때 필요합니다 |
| 조건문 | 조건에 따라 흐름을 나누는 구조입니다 | 더 탐색할지 멈출지 판단할 때 필요합니다 |
| 반복문 | 같은 처리를 여러 번 실행하는 구조입니다 | 가능한 선택지를 순회할 때 필요합니다 |
| 배열·문자열 | 여러 값을 묶어 다루는 기본 자료 구조입니다 | 선택 목록, 방문 여부, 결과 저장에 연결됩니다 |
| 상태 저장 | 현재 풀이 과정에서 필요한 값을 보관하는 일입니다 | 재귀 호출 전후로 값이 어떻게 변하는지 추적해야 합니다 |
| 상태 복구 | 선택하기 전 상태로 되돌리는 일입니다 | 다음 선택지를 볼 때 이전 선택이 남지 않게 해야 합니다 |
이 구분을 먼저 둔 이유는 학습 순서를 과장하지 않기 위해서입니다. 백트래킹 약점이 보였다고 해서 곧바로 백트래킹 문제만 푸는 것이 유일한 답은 아니었습니다.
갭체크 이후 바로 난이도를 올리지 않았습니다
처음에는 Trail 0부터 다시 보는 것이 돌아가는 길처럼 보일 수 있었습니다. 이미 기본 출력이나 변수는 알고 있다고 생각하기 쉽기 때문입니다.
하지만 1편의 결과를 기준으로 보면 필요한 선택이었습니다. 백트래킹은 선택, 기록, 재귀 호출, 복구가 이어지는 구조입니다. 이 구조는 기본 입력 처리와 상태 저장이 안정적이어야 올라갈 수 있습니다.
이번 회차의 선택지는 두 가지였습니다.
| 선택지 | 장점 | 보류한 이유 |
|---|---|---|
| 바로 백트래킹 문제로 이동 | 약점 유형을 직접 공략할 수 있습니다 | 시작 구조가 잡히지 않은 상태에서는 해설 의존이 커질 수 있습니다 |
| Trail 0/1로 내려가 기본 흐름 확인 | 입력, 조건, 반복, 상태 저장을 다시 손에 붙일 수 있습니다 | 단기간에는 돌아가는 길처럼 느껴질 수 있습니다 |
이번에는 두 번째를 선택했습니다. 먼저 Trail 0을 완료하고, Trail 1의 프로그래밍 기초 흐름으로 이어갔습니다.
Trail 0과 Trail 1은 현재 상태를 확인하는 기준이 됐습니다
이번에 확인한 상태는 다음과 같습니다.
| 항목 | 확인한 상태 | 의미 |
|---|---|---|
Trail 0 Codetree 101 | 완료했습니다 | 프로그래밍 시작 흐름을 다시 확인했습니다 |
Trail 1 Novice Low | 진행 중입니다 | 출력, 입출력, 연산자, 조건문, 반복문, 배열, 문자열 흐름을 따라가고 있습니다 |
| Python3 풀이 화면 | 문제 설명, 코드 작성, 실행 결과를 한 화면에서 확인했습니다 | 문제 요구사항을 코드와 결과로 바로 연결할 수 있었습니다 |
| 정답 이후 확인 | 제출 코드와 결과를 다시 볼 수 있었습니다 | 맞힌 뒤에도 표현 방식과 풀이 흐름을 되짚을 수 있었습니다 |
이 상태는 백트래킹 약점이 해결됐다는 뜻은 아닙니다. 다만 백트래킹으로 돌아가기 전에 어떤 기본 흐름을 다시 확인하고 있는지 설명할 수 있는 기준이 됐습니다.
개념을 보고 바로 문제로 넘어가는 흐름이 도움이 됐습니다
CodeTree에서 좋았던 점은 트레일이 단순 문제 목록으로만 보이지 않았다는 점입니다.
Trail 1에는 출력, 입출력, 연산자, 조건문, 반복문, 배열, 문자열처럼 기본 챕터가 나뉘어 있었습니다. 각 챕터에서는 먼저 개념을 확인하고, 이어서 문제를 풀 수 있었습니다.
예를 들어 변수와 자료형에서는 Python3 기준으로 값을 변수에 넣고 출력하는 흐름을 먼저 확인할 수 있었습니다. 기본적인 내용이지만, 문제를 풀 때 "지금 무엇을 연습하는지"가 흐려지지 않는 장점이 있었습니다.
기초 문제에서도 출력 형식은 중요했습니다. 공백, 기호, 줄바꿈을 문제에서 요구한 대로 맞춰야 정답이 됩니다. 이 과정은 단순 문법 확인이 아니라, 문제 요구사항을 코드로 정확히 옮기는 연습이었습니다.
맞힌 뒤에도 풀이를 다시 볼 수 있어 학습이 이어졌습니다
문제를 맞힌 뒤에도 공부가 끝나지 않았습니다.
제출 코드와 결과를 다시 보면서 내가 어떤 방식으로 출력했는지 확인할 수 있었습니다. 같은 결과를 내더라도 f-string, %d 포맷, 변수 분리 방식처럼 표현은 달라질 수 있습니다.
기초 단계에서 이 비교는 중요했습니다. 정답 여부만 확인하면 지나칠 수 있는 작은 습관을 볼 수 있기 때문입니다.
| 확인한 것 | 왜 중요한가 |
|---|---|
| 출력 형식 | 문제 요구사항을 정확히 읽었는지 확인할 수 있습니다 |
| 변수 사용 방식 | 상태를 어떻게 저장했는지 볼 수 있습니다 |
| 표현 방식 | 같은 결과를 더 간결하거나 명확하게 만들 수 있습니다 |
| 제출 결과 | 실행 결과와 정답 판정을 함께 확인할 수 있습니다 |
백트래킹으로 돌아가려면 이런 작은 흐름이 안정적이어야 합니다. 선택을 기록하고 복구하는 문제에서도 결국 값 저장과 출력 검증은 계속 등장하기 때문입니다.
AI는 학습 순서 정리에 사용했고, 문제 확인은 직접 했습니다
AI는 이번 회차에서 학습 순서를 정리하는 데 도움이 됐습니다. 갭체크 결과를 기준으로 백트래킹에 필요한 전제 조건을 나누고, 바로 고난도 문제로 가지 않는 선택을 설명 가능한 순서로 정리할 수 있었습니다.
다만 실제 확인은 CodeTree에서 직접 했습니다. Trail 0 완료, Trail 1 진행, 문제 풀이 화면, 정답 이후 제출 코드 확인은 AI가 대신할 수 없는 부분이었습니다.
| AI로 정리한 일 | 직접 확인한 일 |
|---|---|
| 백트래킹 전제 조건을 입력·상태·조건·반복으로 나눴습니다 | Trail 0과 Trail 1에서 실제 문제를 풀며 확인했습니다 |
| 학습 순서를 후보로 정리했습니다 | 바로 백트래킹으로 가지 않고 기초 트레일을 선택했습니다 |
| 글의 구조를 진단 -> 실행 -> 다음 단계로 정리했습니다 | Trail 완료/진행 화면과 풀이 흐름을 근거로 삼았습니다 |
AI 시대에도 직접 문제를 푸는 감각을 유지하려면, AI가 제안한 학습 순서를 실제 문제 풀이로 다시 확인해야 했습니다.
이번 글에서 남는 기준
이번 2편에서 확인한 기준은 단순합니다.
- 백트래킹 약점이 나왔다고 해서 바로 높은 난이도로 가지 않습니다.
- 재귀와 상태 복구 전에 입력, 변수, 조건, 반복 흐름을 확인합니다.
- 기초 문제도 출력 형식과 상태 저장 관점에서 다시 봅니다.
- 정답 이후에도 제출 코드와 결과를 확인합니다.
- AI는 학습 순서를 정리하는 데 쓰고, 실제 감각은 문제 풀이로 확인합니다.
아직 백트래킹 약점이 해결된 것은 아닙니다. 이번 글은 그 전제 조건을 다시 확인한 기록입니다.
다음 3편에서는 이 학습을 끊기지 않게 만든 CodeTree 알림톡과 GitHub 잔디 루틴을 정리합니다.
CodeTree 바로가기 https://www.codetree.ai/ko
해시태그 #코드트리 #문제해결 #직접코딩 #백트래킹 #알고리즘기초 #파이썬기초
이어 읽기
시리즈는 순서대로, 편집 추천은 맥락대로, 비슷한 주제는 태그 기준으로 정리합니다.
시리즈 전체
코드트리 직접 코딩 감각 유지기2/4편- 1.코드트리 직접 코딩 감각 유지기 1. 갭체크로 백트래킹 약점을 확인했습니다
- 2.코드트리 직접 코딩 감각 유지기 2. 백트래킹 전에 파이썬 기초를 다시 확인했습니다
- 3.코드트리 직접 코딩 감각 유지기 3. 알림톡과 GitHub 잔디로 루틴을 유지했습니다
- 4.코드트리 직접 코딩 감각 유지기 4. 북마크로 백트래킹 복습 루틴을 만들었습니다
함께 읽으면 좋은 글
편집 추천비슷한 주제의 글
태그가 겹치는 글입니다. 시리즈와 편집 추천에 이미 나온 글은 제외합니다.
LLM 공부 01. LLM은 검색기가 아니라 다음 토큰 생성기다
LLM을 내부 검색기나 외부 도서관으로 오해하지 않도록, 문장이 token으로 바뀌고 embedding, Transformer block, LM head, prefill/decode, KV cache를 거쳐 다음 token이 생성되는 흐름을 입문자 관점에서 정리합니다.
LLM 공부 02. 토큰이 비용을 만든다
Tokenizer가 문장을 token ID로 바꾸고 embedding table과 LM head가 vocabulary와 연결되는 구조를 설명하며, vocabulary 변화가 sequence length, KV cache, 사용자 토큰 비용 체감으로 이어지는 이유를 정리합니다.
LLM 공부 03. Transformer 안에서 문맥이 섞이는 방식
Embedding된 token 벡터가 Transformer block stack을 통과하며 self-attention, Q/K/V, causal mask, MLP/FFN, residual stream을 거쳐 다음 token 예측에 필요한 hidden state로 바뀌는 과정을 설명합니다.