A Claude Code / Codex skillClaude Code / Codex 스킬

Build the bridge from a human's solution to code사람의 풀이를 코드로 번역하는 다리를 놓는다

A skill that lays the bridge, step by step, from the way a human solves a problem in their head to the code a machine (Python / Java / C) actually runs.사람이 머릿속으로 푸는 방식을 기계(Python / Java / C)가 실행하는 코드로, 그 중간 다리를 단계적으로 놓아주는 스킬입니다.

Words Hand-solve손풀이 Rules규칙 Variables / flow변수/흐름 Code코드 Tracing트레이싱

Core idea핵심 원리

Code does not appear out of thin air코드는 갑자기 튀어나오지 않는다

The hard part of an algorithm is not "solving" it, but translating what a human does naturally into a form a machine can follow. This skill performs that translation consistently with a 6-step pipeline and a mapping table.알고리즘에서 진짜 어려운 건 "푸는 것"이 아니라, 사람이 자연스럽게 하는 일을 기계가 따라 할 수 있는 형태로 번역하는 것입니다. 이 스킬은 그 번역을 6단계 파이프라인과 매핑표로 일관되게 수행합니다.

Words → Hand-solve → Rules (make the implicit explicit) → Variables / flow → Code → Trace-and-verify말 → 손풀이 → 규칙(암묵지 명시화) → 변수/흐름 → 코드 → 트레이싱 검증

The meaning of the bridge is independent of the language (it stays the same); only the syntax changes. That is why the same solution is shown side by side in C, Java, and Python.다리의 의미는 언어와 무관하고(같음), 달라지는 건 문법뿐이다. 그래서 같은 풀이를 C/Java/Python으로 나란히 보여준다.

The translation pipeline번역 파이프라인

Six steps, always in this order6단계, 항상 이 순서로

Code does not arrive all at once. It moves in order: from words to a hand-solve, to rules, to variables and flow, and finally to trace-and-verify.코드는 한 번에 나오지 않습니다. 말에서 손풀이로, 규칙으로, 변수와 흐름으로, 그리고 트레이싱 검증까지 순서대로 옮겨집니다.

  1. 01

    Restate it in plain human words사람 말로 다시 쓰기

    Put the problem into everyday language and pick one small, concrete example to solve by hand. For example: an array of 5 cells, one target.문제를 일상어로 옮기고, 손으로 풀 작은 구체 예제를 하나 정한다. 예: 배열 5칸, target 하나.

  2. 02

    Watch your hand-solve손풀이 관찰

    Do not jump to the answer; watch the procedure that leads to it. Write down "what I actually did" on paper.답을 먼저 구하지 말고, 답에 이르는 절차를 본다. "내가 실제로 한 일"을 종이에 적어라.

  3. 03

    Make the implicit explicit암묵지 명시화

    Break down the moves you "just know", like "look at the middle" or "pick the bigger one", into precise rules. Middle = (low+high)//2? Integer division? Off-by-one?"가운데를 본다", "큰 걸 고른다" 같은 그냥 아는 행동을 정확한 규칙으로 쪼갠다. 가운데 = (low+high)//2? 정수 나눗셈? off-by-one?

  4. 04

    State → variables / data structures상태 → 변수/자료구조

    Ask "what am I keeping in my head?" The answer is exactly your variables and data structures. Use the mapping table below like a dictionary."내가 기억하고 있는 게 뭐지?"를 묻는다. 그 답이 곧 변수와 자료구조다. 아래 매핑표를 사전처럼 쓴다.

  5. 05

    Flow and stop condition흐름과 종료 조건

    "Until ~" → while + a stop condition, "if ~" → if, "one by one" → for. Always state exactly when it stops (to prevent infinite loops)."~할 때까지" → while + 종료 조건, "~이면" → if, "하나씩" → for. 언제 멈추는지를 반드시 명시한다(무한 루프 방지).

  6. 06

    Code + trace-and-verify코드 + 트레이싱 검증

    Transcribe it as roughly one rule ≈ one line of code. Then hand-trace the edges, "missing value / very end / empty input", in a table.규칙 한 줄 ≈ 코드 한 줄로 받아쓴다. 그다음 "없는 값 / 맨 끝 / 빈 입력" 경계를 표로 손 트레이싱한다.

The core mapping table핵심 매핑표

A human's mental move → a machine building block사람의 머릿속 행동 → 기계 구성요소

This table is the dictionary for step 4 (state → variables). Read the "human phrasing" and recall the right-hand side.이 표가 4단계(상태 → 변수)의 사전입니다. "사람의 표현"을 보고 오른쪽을 떠올리세요.

Human phrasing and its corresponding machine building block, 14 rows사람의 표현과 그에 대응하는 기계 구성요소 14행
Human phrasing / mental move사람의 표현 / 머릿속 행동 Machine building block기계 구성요소
"keep it in mind / hold it in my head""기억해 둔다 / 머릿속에 담아둔다"variable변수 (variable)
"scan through / look at them one at a time""쭉 훑어본다 / 하나씩 차례로 본다"for loopfor 반복문
"as long as ~ / until ~""~인 동안 계속 / ~할 때까지"while + stop conditionwhile + 종료 조건
"pick the largest / smallest""가장 큰/작은 걸 고른다"max/min tracking variable + comparisonmax/min 추적 변수 + 비교
"the best so far""지금까지 중 제일 ~"running variable (running best/sum)누적 변수 (running best/sum)
"have I seen this? / is it a duplicate?""본 적 있나? / 중복인가?"set / dictionary membership집합(set) / 딕셔너리 membership
"label, sort into groups, and collect""이름표 붙여 분류해 모은다"dictionary / map grouping딕셔너리/맵 그룹핑
"match pairs / undo from the most recent""짝을 맞춘다 / 가장 최근 것부터 되돌린다"stack스택(stack)
"process in the order they lined up""줄 세워 들어온 순서대로 처리"queue큐(queue)
"close in toward the middle from both ends""양쪽 끝에서 가운데로 좁혀온다"two pointers (two index variables)투 포인터 (두 인덱스 변수)
"split into cases""경우를 나눠서"if / elif / elseif / elif / else
"draw a grid and fill the cells in""표를 그려 칸을 채워나간다"2D array / DP table2차원 배열 / DP 테이블
"do the same thing n times""n번 똑같이 한다"for i in range(n)for i in range(n)
"break it into a smaller version of the same problem""더 작은 같은 문제로 쪼갠다"recursion재귀 (recursion)

Worked example워크드 예제

Binary search, side by side in three languages이진 탐색, 세 언어로 나란히

Find the index of target in a sorted array, and return -1 if it is not there. See the same bridge (the low/high/mid logic) at once in Python, Java, and C.정렬된 배열에서 target의 자리 번호를 찾고, 없으면 -1을 반환합니다. 같은 다리(low/high/mid 로직)를 Python, Java, C로 동시에 봅니다.

Example: [2,5,8,12,19], target=12. Like looking something up in a dictionary, open to the middle; if target is larger, throw away the whole left half. "Close in from both ends" → two indices low, high. "As long as the two fingers have not crossed" → while low <= high.예제: [2,5,8,12,19], target=12. 사전을 찾듯 가운데를 펴고, target이 더 크면 왼쪽 절반을 통째로 버린다. "양쪽 끝에서 좁혀온다" → 두 인덱스 low, high. "두 손가락이 안 엇갈리는 동안" → while low <= high.
Python
# Python: length is len(), integer division //
def search(arr, target):
    low, high = 0, len(arr) - 1
    while low <= high:
        mid = (low + high) // 2
        if arr[mid] == target:   return mid
        elif arr[mid] < target:  low = mid + 1   # answer is on the right
        else:                    high = mid - 1  # answer is on the left
    return -1
# Python: 길이는 len(), 정수 나눗셈 //
def search(arr, target):
    low, high = 0, len(arr) - 1
    while low <= high:
        mid = (low + high) // 2
        if arr[mid] == target:   return mid
        elif arr[mid] < target:  low = mid + 1   # 답은 오른쪽
        else:                    high = mid - 1  # 답은 왼쪽
    return -1
Java
// Java: length is .length, mid uses the overflow-safe form
int search(int[] arr, int target) {
    int low = 0, high = arr.length - 1;
    while (low <= high) {
        int mid = low + (high - low) / 2;
        if (arr[mid] == target) return mid;
        else if (arr[mid] < target) low = mid + 1;
        else high = mid - 1;
    }
    return -1;
}
// Java: 길이는 .length, mid는 오버플로 안전식
int search(int[] arr, int target) {
    int low = 0, high = arr.length - 1;
    while (low <= high) {
        int mid = low + (high - low) / 2;
        if (arr[mid] == target) return mid;
        else if (arr[mid] < target) low = mid + 1;
        else high = mid - 1;
    }
    return -1;
}
C
/* C: the array length must be passed in as a separate argument */
int search(int arr[], int n, int target) {
    int low = 0, high = n - 1;
    while (low <= high) {
        int mid = low + (high - low) / 2;
        if (arr[mid] == target) return mid;
        else if (arr[mid] < target) low = mid + 1;
        else high = mid - 1;
    }
    return -1;
}
/* C: 배열 길이를 인자로 따로 받아야 함 */
int search(int arr[], int n, int target) {
    int low = 0, high = n - 1;
    while (low <= high) {
        int mid = low + (high - low) / 2;
        if (arr[mid] == target) return mid;
        else if (arr[mid] < target) low = mid + 1;
        else high = mid - 1;
    }
    return -1;
}

The translation lesson: the meaning (compare the middle, then drop half) is the same in all three. The differences are just how you get the length (len() / .length / an argument), the overflow caution (Java and C use low+(high-low)/2), and explicit typing. Lay the bridge once, and you can swap the language out.번역의 교훈: 의미(가운데 비교 → 절반 버리기)는 셋 다 똑같다. 차이는 길이 얻는 법(len() / .length / 인자), 오버플로 주의(Java·C는 low+(high-low)/2), 타입 명시뿐이다. 다리를 한 번 놓으면 언어는 갈아끼우면 된다.

Install설치

Install into Claude CodeClaude Code에 설치

Clone the skill repository. It works as a single line when you copy it.스킬 저장소를 클론합니다. 복사 시 한 줄로 동작합니다.

git clone https://github.com/cskwork/human-to-code-translation-skill.git \
  ~/.claude/skills/human-to-code-translation

It loads automatically when a trigger in the description is detected (for example "I can solve it in my head but cannot write the code", turning an algorithm problem into code, off-by-one / infinite loop).description의 트리거(예: "머릿속으론 풀리는데 코드가 안 써져", 알고리즘 문제를 코드로 옮기기, off-by-one/무한루프)가 잡히면 자동으로 로드됩니다.

Who it is for누구에게

Who needs this skill이 스킬이 필요한 사람

People who teach가르치는 사람

Anyone teaching algorithms or coding tests who has to explain to beginners "why this code ends up the way it does".알고리즘/코딩테스트를 가르치며 입문자에게 "왜 이 코드가 이렇게 되는지" 설명해야 하는 사람.

Learners who cannot make the jump옮기지 못하는 학습자

Learners stuck in the "I can solve it as a human but cannot turn it into code" state."사람으로는 풀겠는데 코드로 못 옮기겠다"는 상태에서 막혀 있는 학습자.

People stuck on edge conditions경계 조건에 막히는 사람

People who keep getting stuck on edge and stop conditions like off-by-one and infinite loops.off-by-one, 무한 루프 같은 경계/종료 조건에서 자꾸 막히는 사람.