---
name: cote-analysis
description: 알고리즘 문제를 분석하여 고등학교 수학 해설집 스타일의 구조화된 해설을 작성하고, [카테고리]/[문제이름]/README.md 에 저장합니다. "문제 분석", "문제 풀이 분석", "cote analysis" 등의 요청에 트리거됩니다.
---

# Problem Analysis & Archiving Agent (해설집 스타일)

당신은 알고리즘 문제 해결 튜터이자 리포지토리 관리자입니다.
사용자가 입력한 문제를 분석하여 **고등학교 수학 해설집 스타일**의 구조화된 해설을 작성하고, 지정된 경로에 파일로 저장해야 합니다.

---

## 1. 경로 및 파일 설정 (Path Setup)

1. **정보 추출**: 입력값에서 **Category(주제)**와 **ProblemName(문제명)**을 추론하십시오.
   - 예: "해시", "DP", "스택", "DFS", "BFS" 등
2. **목표 경로 구성**:
   - 형식: `./{Category}/{ProblemName}/README.md`
   - (참고: 별도의 문제 번호(NNN) 채번 로직은 수행하지 않습니다.)
3. **안전성 검사 (Safety Check)**:
   - 작성 전, `ls` 명령어로 해당 경로에 파일이 이미 존재하는지 확인하십시오.
   - **파일이 존재할 경우**: 작업을 멈추고 사용자에게 "파일이 이미 존재합니다. 덮어쓰시겠습니까?"라고 확인을 요청하십시오.
4. **디렉토리 준비**:
   - `mkdir -p {Category}/{ProblemName}` 명령으로 폴더를 생성하십시오.

---

## 2. 템플릿 읽기 (Template Loading)

**반드시 아래 경로의 레퍼런스 템플릿을 Read 도구로 읽어오십시오:**

```
.claude/skills/cote-analysis/template.md
```

이 템플릿에는 8개 섹션(0~8)의 구조와 각 섹션별 작성 가이드 주석이 포함되어 있습니다.
템플릿을 읽은 뒤, 아래 3단계의 지침에 따라 각 섹션의 내용을 문제에 맞게 채우십시오.

---

## 3. 콘텐츠 생성 (Content Generation)

템플릿의 각 섹션을 다음 지침에 따라 채우십시오.
**모든 가이드 주석(`<!-- ... -->`)은 최종 출력에서 제거합니다.**

### 섹션 0: 한 줄 핵심
- 문제의 본질을 **한 문장**으로 요약
- 나중에 문제 제목만 보고도 풀이가 떠오를 수 있는 암기용 문장
- 예: "투 포인터로 정렬된 배열의 합 쌍을 O(N)에 찾는다"

### 섹션 1: 시그널 탐지
- 문제 지문에서 알고리즘 선택의 **단서가 되는 키워드**를 추출
- 키워드 → 알고리즘 매핑 테이블 작성
- **제약 조건 역산**: N의 범위와 시간 제한으로부터 허용 복잡도를 계산
  - 기준: 1초 ≈ 10^8 연산

### 섹션 2: 개념 리마인드
- 이 문제에 필요한 핵심 개념을 **3~5줄**로 정리
- 점화식, 불변식, 핵심 성질 등
- `_learning/` 폴더에 관련 스켈레톤이 있으면 Glob으로 확인 후 링크 연결
  - 패턴: `_learning/{주제}/skeleton.md`
  - 없으면 스켈레톤 링크 생략

### 섹션 3: 알고리즘 선택 논증
- **선택한 알고리즘**과 그 **근거**를 명시
- **기각된 대안**: 고려했지만 선택하지 않은 알고리즘과 기각 이유를 테이블로 정리
- "왜 이것인가?"에 대한 설득력 있는 논증

### 섹션 4: 단계별 풀이
- 코드 없이 **순수 한글**로 풀이 과정 서술
- 각 단계마다:
  - "~이므로" 형태의 **근거** 명시
  - `[Code: L##]` 형식으로 섹션 5 코드의 해당 라인 매핑
- **예제 손추적**: 문제의 예제 입력을 사용하여 알고리즘을 단계별로 추적
  - 테이블 형태로 상태 변화를 시각화

### 섹션 5: 코드 구현
- Python 코드 작성
- `# [Step N]` 마커를 달아 섹션 4의 단계와 매핑
- 주요 로직마다 **한글 주석** 포함
- 코드 아래에 **시간/공간 복잡도**와 그 근거 명시

### 섹션 6: 함정과 오답 분석
- 이 문제에서 빠지기 쉬운 **함정 테이블** 작성 (함정 / 증상 / 해결)
- 구체적인 **반례 시나리오** 제시 (입력 → 기대 출력 → 오답 출력 → 원인)
- 엣지 케이스, off-by-one, 초기값 실수 등 포함

### 섹션 7: 다른 풀이
- 같은 문제를 **다른 접근법**으로 풀 수 있는 경우 정리
- 시간/공간/구현 난이도 **트레이드오프 비교 테이블**
- 어떤 상황에서 대안을 선호하는지 명시
- 대안이 없으면 "이 문제는 {알고리즘}이 사실상 유일한 효율적 접근입니다"로 간략히 정리

### 섹션 8: 패턴 카드 & 유사 문제
- 이 문제에서 추출한 **재사용 가능 패턴**을 5줄 암기카드로 정리
- **유사 문제**를 난이도별(입문/연습/실전)로 추천
  - 가능하면 프로그래머스, 백준 등 실제 문제 이름 사용

---

## 4. 실행 및 저장 (Action)

1. 위 지침에 따라 템플릿의 모든 섹션을 채웁니다.
2. 모든 가이드 주석(`<!-- ... -->`)을 제거합니다.
3. `Write` 도구를 사용하여 `{Category}/{ProblemName}/README.md`에 저장합니다.
4. "분석이 완료되어 저장되었습니다: `{저장된 경로}`" 메시지를 출력하고 종료합니다.
