프로그래머스/백준 난이도 기준으로 설계한 TypeScript 코딩테스트 연습 문제 모음입니다. Level 0(언어 기본기) 부터 시작해, 입문(프로그래머스 Lv0 / 백준 Bronze)을 거쳐 중급(프로그래머스 Lv3 / 백준 Gold)까지 난이도 곡선을 따라 배치되어 있습니다. (대상: 코딩 입문자 ~ 취준 코딩테스트 중급)
- 각 문제 폴더에는
solution.ts(빈 스텁) 와solution.test.ts(테스트) 가 있습니다. - 모든 문제의 구현 대상 함수는
solution으로 통일되어 있습니다. (프로그래머스와 동일한 방식) - 입출력은 stdin/stdout이 아니라 함수 인자 → 반환값 입니다.
solution.ts안의solution함수를 직접 구현해 테스트를 통과시키면 됩니다.- 구현 전에는
throw new Error("아직 구현되지 않았습니다")때문에 테스트가 실패합니다. - 문제 설명은
solution.ts최상단 주석에 최소한의 요구사항과 예시 1개만 있습니다. - 엣지 케이스 등 세부 동작은
solution.test.ts의 테스트가 곧 명세입니다. 막히면 테스트 이름과 케이스를 읽으세요. (실무처럼!)
여러 명이 같은 레포에서 각자 문제를 풀기 때문에, 기수와 이름이 들어간 브랜치에서 작업합니다.
main은 문제 원본 유지용이므로 직접 푸시하거나 main으로 PR을 올리지 마세요.
| 구분 | 형식 | 예시 |
|---|---|---|
| 베이스 브랜치 (본인 풀이 모음) | {기수}-{영문이름소문자} |
14-minsoonki |
| 작업 브랜치 (문제 하나) | {기수}-{영문이름소문자}-{문제폴더명} |
14-minsoonki-7.2-나무자르기 |
- 기수는 숫자만 씁니다. (예:
14,15) - 이름은 영문 소문자로 씁니다. (예:
minsoonki) - 문제 부분은 문제 폴더명을 그대로 씁니다. (예:
0.1-자료형-타입판별,7.2-나무자르기) - 슬래시(
/) 대신 전부 하이픈(-)으로 연결합니다.
# 1. 처음 한 번: main에서 본인 베이스 브랜치 생성
git switch main && git pull
git switch -c 14-minsoonki
git push -u origin 14-minsoonki
# 2. 문제 풀 때마다: 베이스 브랜치에서 작업 브랜치 생성
git switch 14-minsoonki
git switch -c 14-minsoonki-7.2-나무자르기- 풀이가 끝나면 작업 브랜치를 푸시하고, 본인 베이스 브랜치로 PR을 올립니다.
(예:
14-minsoonki-7.2-나무자르기→14-minsoonki) - PR을 올리면 CI가 변경한 문제의 테스트만 자동으로 실행합니다. 테스트가 모두 통과해야 머지할 수 있습니다.
- PR이 머지되면 베이스 브랜치에 본인 풀이가 차곡차곡 쌓입니다.
npm installnpm start명령을 치면 메뉴가 뜹니다. 화살표 키 ↑↓로 이동하고 Enter로 선택하세요.
- 레벨 선택 —
Level 00 ~ Level 10중 하나를 고릅니다. (맨 위전체를 고르면 모든 문제를 한 번에 실행) - 문제 선택 — 그 레벨 안의 문제를 고릅니다. (맨 위
전체를 고르면 그 레벨 전체를 실행)
선택한 문제의 테스트만 실행되므로, 아직 안 푼 다른 문제 때문에 실패가 잔뜩 뜨는 일이 없습니다.
solution.ts의 solution 함수를 구현한 뒤 다시 npm start로 해당 문제를 골라 통과를 확인하세요.
취소하려면
Ctrl+C를 누르면 됩니다.
npm test # 전체 테스트 실행 (※ 아직 안 푼 문제는 실패로 표시됩니다 — 정상)
npm run test:watch # 워치 모드 (코드를 고칠 때마다 자동 재실행)
# 특정 문제만 실행 (폴더명 일부로 필터)
npx vitest 다익스트라
npx vitest 8.3-섬의개수| Lv | 프로그래머스 | 백준(solved.ac) | 핵심 카테고리 | 문제 수 |
|---|---|---|---|---|
| 0 | (입문 이전) | (티어 이전) | 언어 기본기: 자료형·변수(var/let/const)·함수·클래스 | 8 |
| 1 | Lv0 | Bronze V~IV | 기초 구현(사칙연산·조건문) | 8 |
| 2 | Lv0 | Bronze III~II | 반복문·배열·간단 수학 | 8 |
| 3 | Lv1 | Bronze I~Silver V | 문자열 처리·간단 구현 | 7 |
| 4 | Lv1~2 | Silver IV~III | 정렬·해시(빈도수) | 8 |
| 5 | Lv1~2 | Silver V~III | 스택·큐·그리디·정수론 | 6 |
| 6 | Lv2 | Silver III~II | 완전탐색·시뮬레이션 | 5 |
| 7 | Lv2~3 | Silver IV~I | 이분탐색·투포인터·누적합·그리디 | 7 |
| 8 | Lv3 | Silver I~Gold V | 그래프 탐색(BFS/DFS) | 6 |
| 9 | Lv3 | Gold V~IV | 동적계획법(DP) | 5 |
| 10 | Lv3 | Gold IV~III | 그래프 응용·고급 DP | 5 |
총 73문제. (난이도 표기는 1차 기준으로 프로그래머스, 교차 참조로 백준 티어를 병기)
- Lv0 자료형-타입판별 / 참과거짓 / 변수-스왑 / 함수-기본 / 함수-기본매개변수 / 함수-나머지매개변수 / 클래스-기본 / 클래스-상태
- Lv1 사칙연산 / 홀짝판별 / 세수최댓값 / 점수등급 / 윤년판별 / 초를시분초로 / 부호분류 / 절댓값합
- Lv2 약수의합 / 구구단행 / 배열집계 / 소수개수 / 피보나치수열 / 별찍기 / 자릿수합 / 값세기
- Lv3 회문판별 / 문자열압축길이 / 가장긴단어 / 시저암호 / 숫자영단어변환 / 행렬대각합 / 문자빈도정렬
- Lv4 최빈값 / 완주못한선수 / K번째수 / 두배열교집합 / 로또점수 / 다중기준정렬 / 접두어검사 / 애너그램그룹
- Lv5 최대공약수최소공배수 / 동전최소개수 / 올바른괄호 / 후위표기계산 / 요세푸스 / 에라토스테네스
- Lv6 부분집합합 / 조합합 / 카펫 / 행렬회전 / 달팽이배열
- Lv7 이분탐색 / 나무자르기 / 두수의합 / 최소구간길이 / 구간합질의 / 좌표압축 / 회의실배정
- Lv8 격자최단거리 / 연결요소개수 / 섬의개수 / 미로탈출 / 토마토 / 이분그래프
- Lv9 계단오르기 / LIS / 배낭 / 동전교환경우의수 / LCS
- Lv10 다익스트라 / 위상정렬 / 유니온파인드 / 크루스칼MST / 격자최대경로합
level-00/
0.1-자료형-타입판별/
solution.ts # 구현할 스텁 (문제 설명 + solution 함수)
solution.test.ts # 통과시켜야 할 테스트
...
level-10/
10.5-격자최대경로합/
solution.ts
solution.test.ts
Lv0 → Lv10 순서대로 풀되, 막히면 solution.test.ts의 케이스로 기대 동작을 확인하세요.
코딩이 처음이라면 Lv0(언어 기본기)부터, 문법이 익숙하다면 Lv1부터 시작하세요.