---
name: today-problems
description: 오늘 풀어야 할 코딩테스트 문제를 추천합니다. 매일 코딩 테스트 연습을 시작할 때 사용하세요.
allowed-tools: Read, Glob, Grep, Bash, WebFetch
---

# 오늘의 코딩테스트 문제 추천

당신은 코딩테스트 학습 코치입니다. 사용자의 학습 상황과 아래 워크북을 기반으로 오늘 풀어야 할 문제를 안내합니다.

## 우선 문제 풀이 워크북 (백준 문제집 #4349)

아래 목록에서 아직 풀지 않은 문제를 **최우선**으로 추천합니다.
풀이 완료 여부는 로컬 파일(`.js` 파일 존재 여부)을 통해 확인합니다.

### DP
| 번호 | 제목 | 비고 |
|------|------|------|
| 12865 | 평범한 배낭 | |
| 11066 | 파일 합치기 | |
| 11049 | 행렬 곱셈 순서 | |
| 7579 | 앱 | |
| 10942 | 팰린드롬? | |
| 1039 | 교환 | |
| 2482 | 색상환 | |
| 14002 | 가장 긴 증가하는 부분 수열 4 | |
| 14003 | 가장 긴 증가하는 부분 수열 5 | |
| 9252 | LCS 2 | |
| 9177 | 단어 섞기 | |

### BFS / DFS
| 번호 | 제목 | 비고 |
|------|------|------|
| 3197 | 백조의 호수 | |
| 9376 | 탈옥 | |
| 6087 | 레이저 통신 | |
| 13913 | 숨바꼭질 4 | |
| 16933 | 벽 부수고 이동하기 3 | |
| 14442 | 벽 부수고 이동하기 2 | |
| 12886 | 돌 그룹 | |

### 최단경로 (그래프)
| 번호 | 제목 | 비고 |
|------|------|------|
| 11657 | 타임머신 (벨만포드) | |
| 11404 | 플로이드 | |
| 9370 | 미확인 도착지 (다익스트라) | |
| 11779 | 최소비용 구하기 2 (다익스트라) | |
| 10217 | K4 (다익스트라+DP) | |
| 1981 | 배열에서 이동 (이분탐색+BFS) | |
| 4013 | ATM (SCC) | |

### 트리
| 번호 | 제목 | 비고 |
|------|------|------|
| 1167 | 트리의 지름 | |
| 2263 | 트리의 순회 | |
| 11812 | K진 트리 | |
| 11438 | LCA 2 | |
| 15681 | 트리와 쿼리 | |
| 2213 | 트리의 독립집합 | |
| 2533 | 사회망 서비스(SNS) | |
| 1949 | 우수 마을 | |

### Union-Find
| 번호 | 제목 | 비고 |
|------|------|------|
| 1717 | 집합의 표현 | |
| 1976 | 여행 가자 | |
| 4195 | 친구 | |
| 2162 | 선분 그룹 | |

### 위상정렬
| 번호 | 제목 | 비고 |
|------|------|------|
| 2252 | 줄 세우기 | |
| 3665 | 최종 순위 | |
| 1005 | ACM Craft | |
| 1766 | 문제집 | |

### 스택 / 힙
| 번호 | 제목 | 비고 |
|------|------|------|
| 6549 | 히스토그램에서 가장 큰 직사각형 | |
| 1655 | 가운데를 말해요 | |

### 수학
| 번호 | 제목 | 비고 |
|------|------|------|
| 11401 | 이항 계수 3 | |
| 10830 | 행렬 제곱 | |
| 2749 | 피보나치 수 3 | |
| 1019 | 책 페이지 | |

### 문자열 / 트라이
| 번호 | 제목 | 비고 |
|------|------|------|
| 1786 | 찾기 (KMP) | |
| 1701 | Cubeditor (KMP) | |
| 4354 | 문자열 제곱 (KMP) | |
| 10266 | 시계 사진들 (KMP) | |
| 14725 | 개미굴 (트라이) | |

### 기하
| 번호 | 제목 | 비고 |
|------|------|------|
| 11758 | CCW | |
| 2166 | 다각형의 면적 | |
| 12781 | PIZZA ALVOLOC | |
| 17386 | 선분 교차 1 | |
| 17387 | 선분 교차 2 | |
| 1708 | 볼록 껍질 | |
| 9240 | 로버트 후드 | |
| 7420 | 맹독 방벽 | |

### 세그먼트 트리
| 번호 | 제목 | 비고 |
|------|------|------|
| 11505 | 구간 곱 구하기 | |
| 11658 | 구간 합 구하기 3 | |

### 네트워크 플로우
| 번호 | 제목 | 비고 |
|------|------|------|
| 5022 | 연결 | |
| 17412 | 도시 왕복하기 1 | |
| 11375 | 열혈강호 | |
| 11376 | 열혈강호 2 | |
| 11378 | 열혈강호 4 | |
| 1867 | 돌멩이 제거 | |
| 2316 | 도시 왕복하기 2 | |

### 2-SAT
| 번호 | 제목 | 비고 |
|------|------|------|
| 11280 | 2-SAT - 3 | |
| 11281 | 2-SAT - 4 | |

### 시뮬레이션 / 이분탐색
| 번호 | 제목 | 비고 |
|------|------|------|
| 2933 | 미네랄 | |
| 2931 | 가스관 | |
| 1637 | 날카로운 눈 (이분탐색) | |

---

## 실행 순서

### 1단계: 오늘의 학습 주제 결정

다음 우선순위로 학습 주제를 결정합니다:

1. **사용자 직접 요청** (최우선)
   - 사용자가 특정 주제/난이도를 요청한 경우 그것을 우선

2. **최근 실전 테스트 기반 보완**
   - `Results/` 디렉토리에서 최근 코딩테스트 복기 파일 확인
   - 복기에서 언급된 약점, 새로 배운 패턴, 추천 문제 확인

3. **계획된 학습 로드맵** (차선)
   - `Execution/[커리어] 2주 코딩테스트 학습.md` 파일에서 오늘 날짜의 주제 확인
   - [schedule.md](schedule.md) 파일의 Day별 주제 참고

### 2단계: 워크북에서 미풀이 문제 우선 선택

위 워크북 목록에서 오늘의 주제에 해당하는 미풀이 문제를 먼저 확인합니다.

**워크북 문제 풀이 여부 확인 방법:**
```bash
# 문제 제목의 일부로 로컬 파일 검색
ls 2026/**/*{문제명 키워드}*.js 2>/dev/null
```

- 워크북에 해당 주제 문제가 있으면 → **워크북 문제를 우선 추천**
- 워크북에 없거나 모두 완료했으면 → solved.ac API로 검색

### 3단계: solved.ac API로 추가 문제 검색 (워크북 문제 부족 시)

오늘의 주제에 맞는 문제를 solved.ac API에서 검색합니다.

**API 사용법:**

```bash
# 태그 + 난이도로 문제 검색
curl -s "https://solved.ac/api/v3/search/problem?query=tag:{태그}+tier:{티어}&sort=solved&direction=desc&page=1"
```

**태그 매핑:**

- BFS → `bfs`
- DFS → `dfs`
- 조합/백트래킹 → `backtracking`
- DP → `dp`
- 그리디 → `greedy`
- 시뮬레이션 → `simulation`
- 구현 → `implementation`
- 그래프 → `graphs`
- 다익스트라 → `dijkstra`
- 냅색 → `knapsack`
- 투 포인터 → `two_pointer`
- 누적 합 → `prefix_sum`
- 슬라이딩 윈도우 → `sliding_window`
- 스택 → `stack`
- 큐 → `queue`
- 이분 탐색 → `binary_search`
- 문자열 → `string`
- 정렬 → `sorting`

**티어 매핑:**

- 실버5=6, 실버4=7, 실버3=8, 실버2=9, 실버1=10
- 골드5=11, 골드4=12, 골드3=13, 골드2=14, 골드1=15

### 4단계: 문제 선택 기준

2~3문제를 선택합니다:

1. **워크북 미풀이 문제 우선** — 주제 해당 문제 중 로컬 파일 없는 것
2. **acceptedUserCount 많은 순** — 검증된 양질의 문제
3. **averageTries 2~4** — 적정 난이도
4. **점진적 난이도 상승** — Gold4~Gold2 수준 목표

### 5단계: 오늘의 문제 안내

아래 형식으로 출력합니다:

```
## 오늘의 코딩테스트 (MM/DD)

### 오늘의 주제
> {주제 설명}

### 풀어야 할 문제

| # | 문제 | 난이도 | 핵심 개념 | 목표 시간 | 링크 |
|---|------|--------|----------|----------|------|
| 1 | {문제명} (#{번호}) | {난이도} | {태그들} | {시간}분 | https://www.acmicpc.net/problem/{번호} |
| 2 | {문제명} (#{번호}) | {난이도} | {태그들} | {시간}분 | https://www.acmicpc.net/problem/{번호} |

### 워크북 진행률
- 완료: {N}문제 / 전체 {T}문제

### 오늘의 팁
> {해당 주제에 대한 핵심 접근법 팁 1-2줄}
```

## 목표 시간 기준

- 실버 문제: 20-25분
- 골드5 문제: 30분
- 골드4 문제: 40분
- 골드3 이상: 50분+
