Skip to content

Repository files navigation

코딩테스트 연습 (Level 0~10)

프로그래머스/백준 난이도 기준으로 설계한 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-나무자르기
  1. 풀이가 끝나면 작업 브랜치를 푸시하고, 본인 베이스 브랜치로 PR을 올립니다. (예: 14-minsoonki-7.2-나무자르기14-minsoonki)
  2. PR을 올리면 CI가 변경한 문제의 테스트만 자동으로 실행합니다. 테스트가 모두 통과해야 머지할 수 있습니다.
  3. PR이 머지되면 베이스 브랜치에 본인 풀이가 차곡차곡 쌓입니다.

실행 방법

1. 처음 한 번 (필수)

npm install

2. 풀고 싶은 문제 골라서 실행 (추천)

npm start

명령을 치면 메뉴가 뜹니다. 화살표 키 ↑↓로 이동하고 Enter로 선택하세요.

  1. 레벨 선택Level 00 ~ Level 10 중 하나를 고릅니다. (맨 위 전체를 고르면 모든 문제를 한 번에 실행)
  2. 문제 선택 — 그 레벨 안의 문제를 고릅니다. (맨 위 전체를 고르면 그 레벨 전체를 실행)

선택한 문제의 테스트만 실행되므로, 아직 안 푼 다른 문제 때문에 실패가 잔뜩 뜨는 일이 없습니다. solution.tssolution 함수를 구현한 뒤 다시 npm start로 해당 문제를 골라 통과를 확인하세요.

취소하려면 Ctrl+C를 누르면 됩니다.

3. 직접 실행 (고급)

npm test           # 전체 테스트 실행 (※ 아직 안 푼 문제는 실패로 표시됩니다 — 정상)
npm run test:watch # 워치 모드 (코드를 고칠 때마다 자동 재실행)

# 특정 문제만 실행 (폴더명 일부로 필터)
npx vitest 다익스트라
npx vitest 8.3-섬의개수

난이도 기준 (Lv1~10 → 프로그래머스 / 백준)

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부터 시작하세요.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages