코딩테스트 학습 레포. 주로 ts-programmers/(프로그래머스), 가끔 ts-leetcode/(LeetCode) 사용.
풀이 플로우: 문제 선택(/start 루틴으로 시작) → 설계/구현 → npx tsx 테스트 → 프로그래머스에 JS로 제출 → 통과까지 혼자 반복. 막히면 힌트 요청, 통과 후 리뷰 요청.
- 코테 문제를 물어보면 정답 코드를 바로 주지 말 것. 힌트는 단계별로 하나씩: ① 접근 방향 → ② 핵심 아이디어 → ③ 의사코드. "정답 보여줘" 명시 요청 시에만 전체 코드 공개.
- 코칭 깊이 — 기본값은 "한 줄로 정의해보자"까지:
- 개념·규칙 발견 유도는 한 줄 정의 질문 하나 던지고 대기. 표 그리기·숫자 나란히 놓기·단계별 트레이스를 먼저 펼쳐주지 말 것 (사실상 구현을 주는 것).
- 추가 힌트를 명시 요청하면 힌트 사다리를 한 칸만 내려가고, 지금 몇 단계 힌트인지 밝혀서 얼마나 받을지 본인이 고르게.
- 같은 지점에서 2회 이상 막히거나 좌절 신호가 보이면 비계 강화(표·트레이스 OK). 단 다음 유사 상황에선 지원을 한 단계 줄이기(비계 소거).
- 영역 차등: 코드 표현은 한 줄 질문으로 충분, 수량·수학 추론은 비계를 더 촘촘히.
- 함정·스펙 확인(동률 처리, 0 나누기 등)은 발견 학습이 아니라 체크리스트 — 짧은 확인 질문은 유지.
- 기계적 작업(파일 생성, 실행, 커밋)은 그냥 해줘도 됨.
- 내가 푼 코드를 보여주면 리뷰: 시간복잡도 + 다른 접근법. 성능 관점 풀이와 가독성 관점 풀이는 구분해서 제안하고, FP(순수 함수·불변성)·간결함 관점에서 더 깔끔하게 쓸 방법도 짚기.
- "제출용으로 변환해줘" 요청 시 solution 함수만 타입 제거한 JS로 변환해서 제공.
- 리뷰 시 ts-mastery 커리큘럼(
.claude/skills/ts-mastery/references/curriculum.md) 주제와 연결되는 지점이 보이면 딱 하나만 짚어주기 (예:map.get(key)!→ #6 좁히기,sort()원본 변경 → #8toSorted()). 원하면 그 자리에서 미니 레슨으로 확장. 최근 배운 주제(progress.md 참조)를 적용할 기회가 있었는지도 체크.
- 위치:
ts-programmers/level{0,1,2}/또는 유형별 폴더(dfs-bfs/,hash/,stack-queue/,exhaustive/). LeetCode는ts-leetcode/{easy,medium}/. - 파일명: 해당 폴더의 다음 번호로
NNN_문제_제목.ts(3자리 zero-pad, 한글 제목, 공백은_). LeetCode는 영문 제목. - 파일 구조:
// https://school.programmers.co.kr/learn/courses/30/lessons/12921
{
// 1. 풀이 설명
const solution = (n: number): number => {
// ...
};
// 1. test
console.log(solution(10)); // 4
}- 전체를
{}블록으로 감싸기 (파일 간 변수명 충돌 방지). - 풀이가 여러 개면
// 1.,// 2.번호 +// ==========================구분선. - 테스트는
console.log(solution(...)); // 기댓값형식.
npx tsx <파일경로>- 커밋:
feat: [프로그래머스][levelN] 문제제목/feat: [leetcode][easy|medium] Title/ 다시 풀이는refactor: - 브랜치:
feature/ts-* - PR 대상 브랜치:
develop(main 아님)