algokit-mcp 1.0.4 → 1.0.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +557 -189
- package/dist/index.js +0 -2
- package/dist/index.js.map +1 -1
- package/dist/tools/boj/search-problems-boj.d.ts +2 -2
- package/package.json +2 -3
- package/skills/algo:code-review/SKILL.md +0 -134
- package/skills/algo:fetch/SKILL.md +0 -102
- package/skills/algo:hint/SKILL.md +0 -111
- package/skills/algo:review/SKILL.md +0 -123
- package/skills/algo:search/SKILL.md +0 -122
package/README.md
CHANGED
|
@@ -12,43 +12,70 @@ AI 기반 힌트 생성, 문제 분석, 복습 템플릿 제공으로 효율적
|
|
|
12
12
|
- 📝 **복습 템플릿**: 자동 생성되는 마크다운 복습 문서
|
|
13
13
|
- 🧪 **코드 분석**: 제출 코드의 시간/공간 복잡도 분석 및 개선 제안
|
|
14
14
|
|
|
15
|
-
##
|
|
15
|
+
## 설치
|
|
16
16
|
|
|
17
|
-
|
|
18
|
-
|------|-------------|-------|------------|
|
|
19
|
-
| **Skills 기능명** | Skills | Agent Skills | Agent Skills |
|
|
20
|
-
| **Skills 호출** | `/skill-name` | `$skill-name` or 자동 | 모델 자율 판단 |
|
|
21
|
-
| **MCP 설정 (프로젝트)** | `.mcp.json` | `.codex/config.toml` | `.gemini/settings.json` |
|
|
22
|
-
| **MCP 설정 (전역)** | `~/.claude.json` | `~/.codex/config.toml` | `~/.gemini/settings.json` |
|
|
23
|
-
| **Skills (프로젝트)** | `.claude/skills/` | `.codex/skills/` | `.gemini/skills/` |
|
|
24
|
-
| **Skills (전역)** | `~/.claude/skills/` | `~/.codex/skills/` | `~/.gemini/skills/` |
|
|
17
|
+
> 플랫폼별로 설치 방법이 다릅니다. Claude Code 는 Plugin 마켓플레이스를 지원하고, Codex와 Gemini는 수동 설정이 필요합니다.
|
|
25
18
|
|
|
26
|
-
|
|
19
|
+
### Claude Code (Plugin Marketplace)
|
|
27
20
|
|
|
28
|
-
|
|
21
|
+
마켓플레이스를 등록하고 플러그인을 설치하세요:
|
|
29
22
|
|
|
30
|
-
|
|
23
|
+
```
|
|
24
|
+
/plugin marketplace add itsme-shawn/AlgoKit-mcp
|
|
25
|
+
```
|
|
31
26
|
|
|
32
|
-
|
|
27
|
+
```
|
|
28
|
+
/plugin install algokit-mcp@algokit-plugin
|
|
29
|
+
```
|
|
33
30
|
|
|
34
|
-
|
|
31
|
+
```
|
|
32
|
+
/reload-plugins
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
이 명령으로 **MCP 서버와 6개 Skills가 모두 설치**됩니다.
|
|
36
|
+
|
|
37
|
+
#### 자연어 설치
|
|
38
|
+
|
|
39
|
+
Claude Code에서 아래 문장을 그대로 입력해도 됩니다:
|
|
40
|
+
|
|
41
|
+
```
|
|
42
|
+
algokit-mcp 플러그인을 마켓플레이스에서 설치해줘
|
|
43
|
+
```
|
|
35
44
|
|
|
36
|
-
####
|
|
45
|
+
#### MCP만 별도 설치 (Skills 없이)
|
|
37
46
|
|
|
38
47
|
```bash
|
|
39
|
-
# 전역 설정 (모든 프로젝트에서 사용)
|
|
40
48
|
claude mcp add --scope user algokit -- npx -y algokit-mcp@latest
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
---
|
|
41
52
|
|
|
42
|
-
|
|
43
|
-
claude mcp add --scope project algokit -- npx -y algokit-mcp@latest
|
|
53
|
+
### Codex
|
|
44
54
|
|
|
55
|
+
Codex에게 아래 문장을 입력하세요:
|
|
45
56
|
|
|
46
57
|
```
|
|
58
|
+
이 지시사항 대로 설치해줘 : https://raw.githubusercontent.com/itsme-shawn/AlgoKit-mcp/refs/heads/master/.codex/INSTALL.md
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
---
|
|
62
|
+
|
|
63
|
+
### Gemini CLI
|
|
64
|
+
|
|
65
|
+
Gemini CLI에게 아래 문장을 입력하세요:
|
|
66
|
+
|
|
67
|
+
```
|
|
68
|
+
이 지시사항 대로 설치해줘 : https://raw.githubusercontent.com/itsme-shawn/AlgoKit-mcp/refs/heads/master/.gemini/INSTALL.md
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
---
|
|
47
72
|
|
|
48
|
-
|
|
73
|
+
### 수동 설치 (모든 플랫폼)
|
|
49
74
|
|
|
50
|
-
|
|
75
|
+
<details>
|
|
76
|
+
<summary>MCP 설정 직접 편집하기</summary>
|
|
51
77
|
|
|
78
|
+
**Claude Code** (`~/.claude.json`):
|
|
52
79
|
```json
|
|
53
80
|
{
|
|
54
81
|
"mcpServers": {
|
|
@@ -60,8 +87,14 @@ claude mcp add --scope project algokit -- npx -y algokit-mcp@latest
|
|
|
60
87
|
}
|
|
61
88
|
```
|
|
62
89
|
|
|
63
|
-
|
|
90
|
+
**Codex** (`~/.codex/config.toml`):
|
|
91
|
+
```toml
|
|
92
|
+
[mcp.servers.algokit]
|
|
93
|
+
command = "npx"
|
|
94
|
+
args = ["-y", "algokit-mcp@latest"]
|
|
95
|
+
```
|
|
64
96
|
|
|
97
|
+
**Gemini CLI** (`~/.gemini/settings.json`):
|
|
65
98
|
```json
|
|
66
99
|
{
|
|
67
100
|
"mcpServers": {
|
|
@@ -73,278 +106,613 @@ claude mcp add --scope project algokit -- npx -y algokit-mcp@latest
|
|
|
73
106
|
}
|
|
74
107
|
```
|
|
75
108
|
|
|
76
|
-
|
|
109
|
+
</details>
|
|
77
110
|
|
|
78
|
-
| 등록 방식 | Skills 위치 |
|
|
79
|
-
|----------|------------|
|
|
80
|
-
| `--scope user` (전역) | `~/.claude/skills/` |
|
|
81
|
-
| `--scope project` (`.mcp.json` 있음) | `<프로젝트>/.claude/skills/` |
|
|
82
111
|
|
|
112
|
+
## Skills
|
|
83
113
|
|
|
84
|
-
|
|
114
|
+
**Skill 이름**: `algo:` (BOJ/프로그래머스 자동 선택)
|
|
85
115
|
|
|
86
|
-
|
|
116
|
+
Claude Code, Codex, Gemini CLI 모두 동일한 `algo:` Skills를 지원합니다.
|
|
117
|
+
MCP 서버 첫 기동 시 감지된 에이전트에 자동으로 설치됩니다.
|
|
87
118
|
|
|
88
|
-
|
|
119
|
+
| Skill | 기능 | 사용 예시 |
|
|
120
|
+
|-------|------|----------|
|
|
121
|
+
| `algo:search` | 문제 검색 | `/algo:search 골드 DP 문제 추천해줘` |
|
|
122
|
+
| `algo:fetch` | 문제 본문 크롤링 | `/algo:fetch 11726` |
|
|
123
|
+
| `algo:hint` | 단계별 힌트 | `/algo:hint 11726` |
|
|
124
|
+
| `algo:code-review` | 코드 분석/피드백 | `/algo:code-review @11726.py` |
|
|
125
|
+
| `algo:blank` | 빈칸 연습 코드 생성 | `/algo:blank @11726.py` |
|
|
126
|
+
| `algo:review` | 복습 문서 생성 | `/algo:review 11726` |
|
|
89
127
|
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
codex mcp add algokit -- npx -y algokit-mcp@latest
|
|
93
|
-
```
|
|
128
|
+
> 자연어로 질문해도 AI가 맥락을 파악하여 Skill을 자동 호출합니다.
|
|
129
|
+
> Skill(`/algo:*`)을 사용하면 의도가 더 명확해져 정확한 응답을 받을 수 있습니다.
|
|
94
130
|
|
|
95
|
-
|
|
131
|
+
<details>
|
|
132
|
+
<summary><b>Skills 상세 설명</b></summary>
|
|
96
133
|
|
|
97
|
-
|
|
134
|
+
#### `algo:search` — 문제 검색
|
|
98
135
|
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
136
|
+
난이도, 태그, 키워드로 백준/프로그래머스 문제를 검색합니다. 플랫폼 키워드(`백준`, `프로그래머스`)가 없으면 어떤 플랫폼인지 되묻습니다.
|
|
137
|
+
|
|
138
|
+
- BOJ: 티어(브론즈~루비), 태그(`dp`, `graph` 등), 정렬 옵션 지원
|
|
139
|
+
- 프로그래머스: 레벨(1~5), 인기순/최신순 정렬 지원
|
|
140
|
+
- 검색 후 `/algo:hint`, `/algo:review` 등 후속 스킬 연계 제안
|
|
141
|
+
|
|
142
|
+
#### `algo:fetch` — 문제 본문 크롤링
|
|
143
|
+
|
|
144
|
+
문제 전문(설명, 입출력 형식, 예제, 제한 조건)을 가져옵니다. URL 입력 시 플랫폼 자동 판별, 숫자만 입력 시 플랫폼 확인 후 진행합니다.
|
|
145
|
+
|
|
146
|
+
- BOJ: `acmicpc.net` 크롤링 (시간/메모리 제한 포함)
|
|
147
|
+
- 프로그래머스: `school.programmers.co.kr` 크롤링 (제한사항 포함)
|
|
148
|
+
- 캐시 30일, 재시도 최대 2회
|
|
149
|
+
|
|
150
|
+
#### `algo:hint` — 단계별 힌트
|
|
151
|
+
|
|
152
|
+
문제를 분석하고 사용자 상황에 맞는 **1개 레벨의 힌트만** 제공합니다. 한 번에 모든 힌트를 보여주지 않고, 대화를 통해 점진적으로 안내합니다.
|
|
153
|
+
|
|
154
|
+
| Level | 시점 | 내용 |
|
|
155
|
+
|-------|------|------|
|
|
156
|
+
| Level 1 | 처음 막혔을 때 | 알고리즘명 없이 구조적 특징만 암시 |
|
|
157
|
+
| Level 2 | "더 알려줘" 요청 | 알고리즘 유형 + 핵심 아이디어 |
|
|
158
|
+
| Level 3 | "정답 알려줘" 요청 | 단계별 전략 + 의사코드 수준 설명 |
|
|
159
|
+
|
|
160
|
+
#### `algo:blank` — 빈칸 연습 코드 생성
|
|
161
|
+
|
|
162
|
+
완성된 풀이 코드의 핵심 로직을 `____`로 가린 연습 파일을 생성합니다. 원본 파일은 수정하지 않고 `_blank` 접미사 파일을 새로 만듭니다.
|
|
163
|
+
|
|
164
|
+
- 빈칸 대상: 점화식, 자료구조 초기화, 핵심 조건문, 방문 처리 등
|
|
165
|
+
- `// TODO N: 설명` 주석으로 무엇을 채워야 하는지 안내 (정답은 미제공)
|
|
166
|
+
- import, 클래스 시그니처, main 블록은 그대로 유지
|
|
167
|
+
|
|
168
|
+
#### `algo:code-review` — 코드 분석/피드백
|
|
169
|
+
|
|
170
|
+
풀이 코드의 정확성, 시간/공간 복잡도를 분석하고 개선점을 제안합니다.
|
|
104
171
|
|
|
105
|
-
|
|
172
|
+
| 분석 타입 | 내용 |
|
|
173
|
+
|-----------|------|
|
|
174
|
+
| `full` (기본) | 정확성 + 복잡도 + 개선점 + 스타일 |
|
|
175
|
+
| `debug` | 에러 원인, 로직 오류, 엣지 케이스 |
|
|
176
|
+
| `hint` | 핵심 개념, 접근 방향 |
|
|
177
|
+
| `review` | 스타일, 가독성, 네이밍, 구조 |
|
|
106
178
|
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
179
|
+
#### `algo:review` — 복습 문서 생성
|
|
180
|
+
|
|
181
|
+
풀이를 마친 후 학습 내용을 정리하는 마크다운 복습 문서(`_REVIEW.md`)를 생성합니다. MCP 서버가 템플릿과 가이드 프롬프트를 제공하고, AI가 사용자와 대화하며 섹션별로 작성합니다.
|
|
182
|
+
|
|
183
|
+
- 포함 내용: 문제 요약, 사고흐름, 핵심아이디어, 풀이 코드 + 로직 설명, 데이터 흐름 추적, 실수 포인트, 관련 문제
|
|
184
|
+
- 사용자 코드 기반 맞춤형 분석
|
|
185
|
+
|
|
186
|
+
</details>
|
|
111
187
|
|
|
112
188
|
---
|
|
113
189
|
|
|
114
|
-
|
|
190
|
+
## 사용 시나리오
|
|
115
191
|
|
|
116
|
-
|
|
192
|
+
> 모든 결과는 AlgoKit MCP 서버를 실제 호출하여 얻은 데이터입니다.
|
|
117
193
|
|
|
118
|
-
|
|
119
|
-
# 전역 설치
|
|
120
|
-
gemini mcp add algokit -- npx -y algokit-mcp@latest
|
|
121
|
-
```
|
|
194
|
+
하나의 문제에 대해 **탐색부터 복습까지** 전 과정을 지원합니다.
|
|
122
195
|
|
|
123
|
-
|
|
196
|
+
| 단계 | 기능 | Skill |
|
|
197
|
+
|:---:|------|-------|
|
|
198
|
+
| 1 | 문제 검색 | `algo:search` |
|
|
199
|
+
| 2 | 문제 요약 | `algo:fetch` |
|
|
200
|
+
| 3 | 단계별 힌트 | `algo:hint` |
|
|
201
|
+
| 4 | 빈칸 힌트 | `algo:blank` |
|
|
202
|
+
| 5 | 코드 리뷰 | `algo:code-review` |
|
|
203
|
+
| 6 | 복습 정리 | `algo:review` |
|
|
124
204
|
|
|
125
|
-
|
|
205
|
+
---
|
|
126
206
|
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
"args": ["-y", "algokit-mcp@latest"]
|
|
133
|
-
}
|
|
134
|
-
}
|
|
135
|
-
}
|
|
207
|
+
### 1. 문제 검색
|
|
208
|
+
|
|
209
|
+
#### User:
|
|
210
|
+
```
|
|
211
|
+
BOJ에서 실버상위~골드 난이도 DP 문제 찾아줘
|
|
136
212
|
```
|
|
137
213
|
|
|
138
|
-
|
|
214
|
+
Skill 사용 시,
|
|
215
|
+
```
|
|
216
|
+
/algo:search BOJ에서 실버상위~골드 난이도 DP 문제 찾아줘
|
|
217
|
+
```
|
|
139
218
|
|
|
140
|
-
|
|
141
|
-
|----------|------------|
|
|
142
|
-
| 프로젝트 (`.gemini/` 있음) | `<프로젝트>/.gemini/skills/` |
|
|
143
|
-
| 전역 (`~/.gemini/` 있음) | `~/.gemini/skills/` |
|
|
219
|
+
#### AI Agent:
|
|
144
220
|
|
|
145
|
-
|
|
221
|
+
```
|
|
222
|
+
⏺ Skill(algo:search)
|
|
223
|
+
⎿ Successfully loaded skill
|
|
146
224
|
|
|
147
|
-
|
|
225
|
+
⏺ BOJ에서 실버 상위~골드 난이도 DP 문제를 검색하겠습니다.
|
|
148
226
|
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
| `search_problems_boj` | 문제 검색 (티어, 태그, 키워드) |
|
|
152
|
-
| `get_problem_boj` | 문제 상세 조회 |
|
|
153
|
-
| `search_tags_boj` | 알고리즘 태그 검색 |
|
|
154
|
-
| `fetch_problem_content_boj` | 문제 본문 스크래핑 |
|
|
155
|
-
| `analyze_problem_boj` | 문제 분석 및 힌트 가이드 |
|
|
156
|
-
| `generate_hint_boj` | 3단계 힌트 생성 |
|
|
157
|
-
| `generate_review_template_boj` | 복습 템플릿 생성 |
|
|
158
|
-
| `analyze_code_submission_boj` | 코드 분석 및 피드백 |
|
|
227
|
+
⏺ algokit - search_problems_boj (MCP)
|
|
228
|
+
(tags: "dp", level_min: "8", level_max: "15", sort: "level", direction: "asc")
|
|
159
229
|
|
|
160
|
-
|
|
230
|
+
**총 1909개 문제** (1페이지)
|
|
161
231
|
|
|
162
|
-
|
|
163
|
-
|------|------|
|
|
164
|
-
| `search_problems_programmers` | 문제 검색 (난이도, 카테고리) |
|
|
165
|
-
| `get_problem_programmers` | 문제 상세 조회 |
|
|
166
|
-
| `fetch_problem_content_programmers` | 문제 본문 스크래핑 |
|
|
167
|
-
| `analyze_problem_programmers` | 문제 분석 |
|
|
168
|
-
| `generate_hint_programmers` | 힌트 생성 |
|
|
169
|
-
| `generate_review_template_programmers` | 복습 템플릿 |
|
|
170
|
-
| `analyze_code_submission_programmers` | 코드 분석 |
|
|
232
|
+
⏺ 총 1,909개의 DP 문제가 Silver III ~ Gold I 범위에 있습니다.
|
|
171
233
|
|
|
172
|
-
|
|
234
|
+
Silver III (실버 3)
|
|
173
235
|
|
|
174
|
-
|
|
236
|
+
┌───────┬────────────────┬──────────┐
|
|
237
|
+
│ 번호 │ 제목 │ 해결자 │
|
|
238
|
+
├───────┼────────────────┼──────────┤
|
|
239
|
+
│ 1463 │ 1로 만들기 │ 87,355명 │
|
|
240
|
+
├───────┼────────────────┼──────────┤
|
|
241
|
+
│ 9095 │ 1, 2, 3 더하기 │ 72,673명 │
|
|
242
|
+
├───────┼────────────────┼──────────┤
|
|
243
|
+
│ 11726 │ 2×n 타일링 │ 65,411명 │
|
|
244
|
+
├───────┼────────────────┼──────────┤
|
|
245
|
+
│ 2579 │ 계단 오르기 │ 64,700명 │
|
|
246
|
+
├───────┼────────────────┼──────────┤
|
|
247
|
+
│ 14501 │ 퇴사 │ 42,532명 │
|
|
248
|
+
└───────┴────────────────┴──────────┘
|
|
175
249
|
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
### 수동 설치
|
|
250
|
+
다음 페이지에서 Silver II ~ Gold 난이도 문제도 볼까요?
|
|
251
|
+
```
|
|
180
252
|
|
|
181
|
-
|
|
182
|
-
# Claude Code
|
|
183
|
-
cp -r skills/* ~/.claude/skills/ # 전역
|
|
184
|
-
cp -r skills/* .claude/skills/ # 프로젝트
|
|
253
|
+
---
|
|
185
254
|
|
|
186
|
-
|
|
187
|
-
cp -r skills/* ~/.codex/skills/ # 전역
|
|
188
|
-
cp -r skills/* .codex/skills/ # 프로젝트
|
|
255
|
+
### 2. 문제 내용 요약
|
|
189
256
|
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
257
|
+
#### User:
|
|
258
|
+
```
|
|
259
|
+
BOJ 11726 문제 내용 요약해줘
|
|
193
260
|
```
|
|
194
261
|
|
|
195
|
-
|
|
262
|
+
Skill 사용 시,
|
|
263
|
+
```
|
|
264
|
+
/algo:fetch 11726
|
|
265
|
+
```
|
|
196
266
|
|
|
197
|
-
####
|
|
267
|
+
#### AI Agent:
|
|
198
268
|
|
|
199
269
|
```
|
|
200
|
-
|
|
270
|
+
⏺ algokit - fetch_problem_content_boj (MCP)(problem_id: 11726)
|
|
271
|
+
|
|
272
|
+
⏺ BOJ 11726 - 2×n 타일링
|
|
201
273
|
|
|
202
|
-
|
|
274
|
+
2×n 크기의 직사각형을 1×2, 2×1 타일로 빈틈없이 채우는 방법의 수를
|
|
275
|
+
구하는 문제입니다.
|
|
203
276
|
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
277
|
+
┌─────────────┬──────────────────────────────────┐
|
|
278
|
+
│ 항목 │ 내용 │
|
|
279
|
+
├─────────────┼──────────────────────────────────┤
|
|
280
|
+
│ 입력 │ 정수 n (1 ≤ n ≤ 1,000) │
|
|
281
|
+
├─────────────┼──────────────────────────────────┤
|
|
282
|
+
│ 출력 │ 방법의 수를 10,007로 나눈 나머지 │
|
|
283
|
+
├─────────────┼──────────────────────────────────┤
|
|
284
|
+
│ 시간/메모리 │ 1초 / 256MB │
|
|
285
|
+
└─────────────┴──────────────────────────────────┘
|
|
208
286
|
|
|
209
|
-
|
|
287
|
+
예제: n=2 → 2, n=9 → 55
|
|
210
288
|
```
|
|
211
289
|
|
|
290
|
+
---
|
|
291
|
+
|
|
292
|
+
### 3. 단계별 힌트
|
|
293
|
+
|
|
294
|
+
#### User:
|
|
295
|
+
```
|
|
296
|
+
이 문제, 접근에 대한 힌트를 줘
|
|
212
297
|
```
|
|
213
|
-
You: "https://www.acmicpc.net/problem/1927"
|
|
214
298
|
|
|
215
|
-
|
|
299
|
+
Skill 사용 시,
|
|
300
|
+
```
|
|
301
|
+
/algo:hint 11726
|
|
302
|
+
```
|
|
216
303
|
|
|
217
|
-
|
|
218
|
-
- 난이도: 🥈 Silver I
|
|
219
|
-
- 분류: 자료구조, 우선순위 큐
|
|
220
|
-
- 해결: 28,456명 | 정답률: 47.2%
|
|
304
|
+
#### AI Agent:
|
|
221
305
|
|
|
222
|
-
본문을 보시겠어요? (/algo:fetch)"
|
|
223
306
|
```
|
|
307
|
+
⏺ algokit - analyze_problem_boj (MCP)(problem_id: 11726)
|
|
308
|
+
|
|
309
|
+
⏺ BOJ 11726 — 2×n 타일링 (Silver III)
|
|
310
|
+
|
|
311
|
+
Level 1 힌트: 문제 분석
|
|
312
|
+
|
|
313
|
+
작은 경우부터 직접 그려보세요. n=1, n=2, n=3, n=4일 때 2×n 직사각형을
|
|
314
|
+
채우는 방법이 각각 몇 가지인지 손으로 나열해 보면, 이전 결과들이 다음
|
|
315
|
+
결과를 만드는 데 재활용되는 패턴이 보일 겁니다.
|
|
224
316
|
|
|
225
|
-
|
|
317
|
+
"n번째를 채우려면 직전에 어떤 상태에서 올 수 있는가?"를 생각해 보세요.
|
|
226
318
|
|
|
319
|
+
---
|
|
320
|
+
더 구체적인 힌트가 필요하면 말씀해 주세요!
|
|
227
321
|
```
|
|
228
|
-
You: "1927번 힌트 줘"
|
|
229
322
|
|
|
230
|
-
|
|
323
|
+
> MCP 서버가 구조화된 데이터 + 가이드 프롬프트를 반환하면,
|
|
324
|
+
> Claude가 문제에 맞는 자연어 분석을 생성합니다.
|
|
231
325
|
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
326
|
+
---
|
|
327
|
+
|
|
328
|
+
#### 힌트 더 받기
|
|
235
329
|
|
|
236
|
-
|
|
330
|
+
#### User:
|
|
237
331
|
```
|
|
332
|
+
잘 안 풀리네. 힌트를 좀 더 줘
|
|
333
|
+
```
|
|
334
|
+
|
|
335
|
+
#### AI Agent:
|
|
238
336
|
|
|
239
337
|
```
|
|
240
|
-
|
|
338
|
+
⏺ Level 2 힌트: 핵심 아이디어
|
|
241
339
|
|
|
242
|
-
|
|
340
|
+
이 문제는 다이나믹 프로그래밍(DP) 문제입니다.
|
|
243
341
|
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
3. x가 0이면 → `heappop()` (빈 경우 0 출력)
|
|
342
|
+
핵심은 2×n 직사각형의 맨 오른쪽 열을 채우는 방법이 딱 두 가지뿐이라는
|
|
343
|
+
점입니다:
|
|
247
344
|
|
|
248
|
-
|
|
249
|
-
|
|
345
|
+
1. 세로 타일 1개 (2×1) → 나머지는 2×(n-1) 채우기
|
|
346
|
+
2. 가로 타일 2개 (1×2 두 개) → 나머지는 2×(n-2) 채우기
|
|
250
347
|
|
|
251
|
-
|
|
348
|
+
즉, f(n)을 구하려면 f(n-1)과 f(n-2)만 알면 됩니다.
|
|
349
|
+
|
|
350
|
+
---
|
|
351
|
+
더 상세한 풀이 가이드가 필요하면 말씀해 주세요.
|
|
252
352
|
```
|
|
253
353
|
|
|
254
|
-
|
|
354
|
+
사용자 상황에 따라 **한 번에 1개 레벨만** 제공:
|
|
355
|
+
|
|
356
|
+
| Level | 시점 | 제공 내용 |
|
|
357
|
+
|-------|------|----------|
|
|
358
|
+
| Level 1 | 처음 시도할 때 | 알고리즘명 없이 구조적 특징만 암시 |
|
|
359
|
+
| Level 2 | "더 알려줘" 요청 시 | 알고리즘 유형 명시 + 핵심 아이디어 |
|
|
360
|
+
| Level 3 | "정답 알려줘" 요청 시 | 단계별 전략 + 의사코드 수준 설명 |
|
|
361
|
+
|
|
362
|
+
---
|
|
363
|
+
|
|
364
|
+
### 4. 빈칸 힌트
|
|
365
|
+
|
|
366
|
+
#### User:
|
|
367
|
+
```
|
|
368
|
+
정답 코드에 빈 칸을 뚫어서 힌트를 줘
|
|
369
|
+
11726_blank.py 에 작성해줘
|
|
370
|
+
```
|
|
255
371
|
|
|
372
|
+
Skill 사용 시,
|
|
373
|
+
```
|
|
374
|
+
/algo:blank @11726.py
|
|
256
375
|
```
|
|
257
|
-
You: "1927번 내 코드 분석해줘"
|
|
258
|
-
You: [Python 코드 붙여넣기]
|
|
259
376
|
|
|
260
|
-
|
|
377
|
+
#### AI Agent:
|
|
261
378
|
|
|
262
|
-
|
|
263
|
-
-
|
|
264
|
-
|
|
379
|
+
```
|
|
380
|
+
⏺ algokit - fetch_problem_content_boj (MCP)(problem_id: 11726)
|
|
381
|
+
|
|
382
|
+
⏺ Write(11726_blank.py)
|
|
383
|
+
⎿ Wrote 26 lines to 11726_blank.py
|
|
384
|
+
1 # BOJ 11726 - 2×n 타일링
|
|
385
|
+
2 # https://www.acmicpc.net/problem/11726
|
|
386
|
+
3 #
|
|
387
|
+
4 # 점화식 힌트:
|
|
388
|
+
5 # - 맨 오른쪽에 세로 타일 1개 → f(n-1)
|
|
389
|
+
6 # - 맨 오른쪽에 가로 타일 2개 → f(n-2)
|
|
390
|
+
7
|
|
391
|
+
8 n = int(input())
|
|
392
|
+
9
|
|
393
|
+
10 # TODO 1: dp 배열 초기화 (크기: n+1, 초깃값: 0)
|
|
394
|
+
11 dp = ____
|
|
395
|
+
12
|
|
396
|
+
13 # TODO 2: 기저 조건 설정
|
|
397
|
+
14 dp[1] = ____
|
|
398
|
+
15 dp[2] = ____
|
|
399
|
+
16
|
|
400
|
+
17 # TODO 3: 점화식을 이용해 dp[3] ~ dp[n] 채우기
|
|
401
|
+
18 for i in range(3, n + 1):
|
|
402
|
+
19 dp[i] = ____
|
|
403
|
+
20
|
|
404
|
+
21 # TODO 4: 결과 출력 (10007로 나눈 나머지)
|
|
405
|
+
22 print(____)
|
|
406
|
+
|
|
407
|
+
⏺ 11726_blank.py에 빈칸 버전을 작성했습니다. 총 4개의 TODO가 있습니다:
|
|
408
|
+
|
|
409
|
+
┌──────┬─────────────────────────────────────────────────┐
|
|
410
|
+
│ TODO │ 힌트 │
|
|
411
|
+
├──────┼─────────────────────────────────────────────────┤
|
|
412
|
+
│ 1 │ dp 배열을 어떤 크기로, 어떻게 초기화할지 │
|
|
413
|
+
├──────┼─────────────────────────────────────────────────┤
|
|
414
|
+
│ 2 │ dp[1]과 dp[2]의 기저값 (직접 손으로 세어보세요) │
|
|
415
|
+
├──────┼─────────────────────────────────────────────────┤
|
|
416
|
+
│ 3 │ dp[i] = ? — Level 2 힌트에서 알려드린 점화식! │
|
|
417
|
+
├──────┼─────────────────────────────────────────────────┤
|
|
418
|
+
│ 4 │ 최종 출력 시 모듈러 연산을 어디서 적용할지 │
|
|
419
|
+
└──────┴─────────────────────────────────────────────────┘
|
|
420
|
+
|
|
421
|
+
빈칸을 ____ 부분에 채워보세요. 막히면 말씀해 주세요!
|
|
422
|
+
```
|
|
265
423
|
|
|
266
|
-
|
|
267
|
-
1. `sys.stdin.readline()` 사용 → 입력 속도 개선 (30% 빠름)
|
|
268
|
-
2. 빈 힙 체크를 `if heap:` 대신 `if len(heap):`로 명시
|
|
424
|
+
---
|
|
269
425
|
|
|
270
|
-
|
|
271
|
-
- 현재: 약 300ms
|
|
272
|
-
- 개선 후: 약 200ms
|
|
426
|
+
### 5. 코드 리뷰
|
|
273
427
|
|
|
274
|
-
|
|
428
|
+
#### User:
|
|
429
|
+
```
|
|
430
|
+
@BOJ/10000~/11726/11726.py
|
|
431
|
+
내 풀이를 보고 리뷰해줘
|
|
275
432
|
```
|
|
276
433
|
|
|
277
|
-
|
|
434
|
+
Skill 사용 시,
|
|
435
|
+
```
|
|
436
|
+
/algo:code-review @11726.py
|
|
437
|
+
```
|
|
438
|
+
|
|
439
|
+
#### AI Agent:
|
|
278
440
|
|
|
279
441
|
```
|
|
280
|
-
|
|
442
|
+
⏺ Skill(algo:code-review)
|
|
443
|
+
⎿ Successfully loaded skill
|
|
444
|
+
|
|
445
|
+
⏺ algokit - analyze_code_submission_boj (MCP)
|
|
446
|
+
(problem_id: 11726, language: "python", analysis_type: "review")
|
|
447
|
+
|
|
448
|
+
⏺ BOJ 11726 - 2×n 타일링 코드 리뷰
|
|
449
|
+
|
|
450
|
+
✅ 정확성
|
|
281
451
|
|
|
282
|
-
|
|
452
|
+
피보나치 점화식 dp[i] = dp[i-1] + dp[i-2]를 정확히 적용했고,
|
|
453
|
+
모듈러 연산도 올바르게 처리했습니다. 정답 코드입니다.
|
|
283
454
|
|
|
284
|
-
|
|
455
|
+
⏱️ 복잡도
|
|
285
456
|
|
|
286
|
-
|
|
287
|
-
|
|
457
|
+
- 시간: O(n) — 최적
|
|
458
|
+
- 공간: O(n) (고정 1001 크기 배열)
|
|
288
459
|
|
|
289
|
-
|
|
290
|
-
- **우선순위 큐** (최소 힙)
|
|
291
|
-
- 삽입: O(log N), 삭제: O(log N)
|
|
460
|
+
💡 개선 포인트
|
|
292
461
|
|
|
293
|
-
|
|
294
|
-
1
|
|
295
|
-
2. 입력에 따라 push/pop 수행
|
|
296
|
-
...
|
|
462
|
+
1. 배열 크기 고정 (1001)
|
|
463
|
+
n + 1 크기로 잡는 게 의도가 더 명확합니다.
|
|
297
464
|
|
|
298
|
-
|
|
465
|
+
2. 공간 최적화 가능
|
|
466
|
+
이전 두 값만 사용하므로 변수 두 개로 줄일 수 있습니다:
|
|
467
|
+
a, b = 1, 2
|
|
468
|
+
for _ in range(3, n + 1):
|
|
469
|
+
a, b = b, (a + b) % 10007
|
|
470
|
+
|
|
471
|
+
총평
|
|
472
|
+
|
|
473
|
+
DP 기본 문제를 깔끔하게 풀었습니다. 점화식 도출, 모듈러 처리,
|
|
474
|
+
입력 최적화 모두 잘 적용되어 수정할 부분이 거의 없는 코드입니다.
|
|
299
475
|
```
|
|
300
476
|
|
|
301
477
|
---
|
|
302
478
|
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
### 새 문제 접근하기
|
|
479
|
+
### 6. 복습 정리
|
|
306
480
|
|
|
481
|
+
#### User:
|
|
482
|
+
```
|
|
483
|
+
복습 문서 만들어줘
|
|
307
484
|
```
|
|
308
|
-
1. You: "골드 3~5 DP 문제 추천"
|
|
309
|
-
→ Claude: [문제 3개 추천]
|
|
310
485
|
|
|
311
|
-
|
|
312
|
-
|
|
486
|
+
Skill 사용 시,
|
|
487
|
+
```
|
|
488
|
+
/algo:review 11726
|
|
489
|
+
```
|
|
313
490
|
|
|
314
|
-
|
|
315
|
-
→ Claude: [Level 1 힌트]
|
|
491
|
+
#### AI Agent:
|
|
316
492
|
|
|
317
|
-
4. You: "더 구체적으로"
|
|
318
|
-
→ Claude: [Level 2 힌트]
|
|
319
493
|
```
|
|
494
|
+
⏺ Skill(algo:review)
|
|
495
|
+
⎿ Successfully loaded skill
|
|
320
496
|
|
|
321
|
-
|
|
497
|
+
⏺ algokit - generate_review_template_boj (MCP)
|
|
498
|
+
(problem_id: 11726, user_notes: "피보나치 점화식 dp[i] = dp[i-1] +
|
|
499
|
+
dp[i-2] 활용, 모듈러 연산 10007, O(n) 시간/공간")
|
|
322
500
|
|
|
501
|
+
⏺ Write(BOJ/10000~/11726/11726_REVIEW.md)
|
|
502
|
+
⎿ Wrote 142 lines to BOJ/10000~/11726/11726_REVIEW.md
|
|
323
503
|
```
|
|
324
|
-
1. You: "1932번 내 코드 분석해줘" + [코드]
|
|
325
|
-
→ Claude: [시간복잡도, 개선점 제시]
|
|
326
504
|
|
|
327
|
-
|
|
328
|
-
|
|
505
|
+
<!-- 아래는 생성된 REVIEW.md의 실제 내용입니다. -->
|
|
506
|
+
<!-- MCP 서버가 템플릿 + 가이드 프롬프트를 제공하고, AI가 사용자와 대화하며 작성합니다. -->
|
|
507
|
+
|
|
508
|
+
<details>
|
|
509
|
+
<summary><b>생성된 복습 문서 예시 보기</b></summary>
|
|
510
|
+
|
|
511
|
+
````markdown
|
|
512
|
+
#### BOJ 11726 — 2×n 타일링
|
|
513
|
+
|
|
514
|
+
https://www.acmicpc.net/problem/11726
|
|
515
|
+
|
|
516
|
+
**문제 정보**
|
|
517
|
+
|
|
518
|
+
| 항목 | 내용 |
|
|
519
|
+
|------|------|
|
|
520
|
+
| 핵심 요구사항 | 2×n 직사각형을 1×2, 2×1 타일로 채우는 방법의 수를 10,007로 나눈 나머지 출력 |
|
|
521
|
+
| 입력 크기 | 1 ≤ n ≤ 1,000 |
|
|
522
|
+
| 시간/메모리 | 1초 / 256MB |
|
|
523
|
+
| 티어 | Silver III |
|
|
524
|
+
| 태그 | 다이나믹 프로그래밍 |
|
|
525
|
+
| 해결자 수 | 65,411명 (평균 시도 2.7회) |
|
|
526
|
+
|
|
527
|
+
**사고흐름**
|
|
528
|
+
|
|
529
|
+
- **첫 인상**: n이 작아질수록 경우의 수가 줄어드는 구조 → 작은 문제로 분할 가능
|
|
530
|
+
- **자료구조/알고리즘 선택**: DP (Bottom-Up)
|
|
531
|
+
- **선택 근거**: dp[n]을 구하기 위해 이전 상태(dp[n-1], dp[n-2])만 필요 → 점화식 도출 가능
|
|
532
|
+
- **특이 조건 처리**: 모듈러 연산을 매 단계 적용하여 오버플로우 방지
|
|
533
|
+
- **시간 복잡도 검증**: O(n) = O(1000) → 충분
|
|
534
|
+
|
|
535
|
+
**핵심아이디어**
|
|
536
|
+
|
|
537
|
+
2×n 타일링의 마지막 열 배치를 기준으로 경우를 나누면 피보나치 점화식이 도출된다. 마지막에 세로 타일(1×2) 1개를 놓으면 dp[n-1], 가로 타일(2×1) 2개를 놓으면 dp[n-2]가 되어 **dp[n] = dp[n-1] + dp[n-2]**.
|
|
538
|
+
|
|
539
|
+
**풀이 1 (내 코드)**
|
|
540
|
+
|
|
541
|
+
```python
|
|
542
|
+
import sys
|
|
543
|
+
read = sys.stdin.readline
|
|
544
|
+
|
|
545
|
+
n = int(read())
|
|
546
|
+
dp = [0] * (1001)
|
|
547
|
+
|
|
548
|
+
dp[1], dp[2] = 1, 2
|
|
549
|
+
for i in range(3, n + 1):
|
|
550
|
+
dp[i] = (dp[i - 1] + dp[i - 2]) % 10007
|
|
551
|
+
print(dp[n])
|
|
329
552
|
```
|
|
330
553
|
|
|
331
|
-
|
|
554
|
+
핵심 포인트:
|
|
555
|
+
- 배열을 1001 크기로 고정하여 n=1일 때 dp[2] 초기화 시 IndexError 방지
|
|
556
|
+
- 매 단계에서 % 10007 적용하여 중간 값 오버플로우 방지
|
|
332
557
|
|
|
333
|
-
|
|
558
|
+
**데이터 흐름 추적** (n = 9):
|
|
334
559
|
|
|
335
|
-
### 일반 사용 (자연스러운 대화)
|
|
336
560
|
```
|
|
337
|
-
|
|
338
|
-
|
|
561
|
+
dp[1] = 1
|
|
562
|
+
dp[2] = 2
|
|
563
|
+
dp[3] = dp[2] + dp[1] = 3
|
|
564
|
+
dp[4] = dp[3] + dp[2] = 5
|
|
565
|
+
dp[5] = dp[4] + dp[3] = 8
|
|
566
|
+
dp[6] = dp[5] + dp[4] = 13
|
|
567
|
+
dp[7] = dp[6] + dp[5] = 21
|
|
568
|
+
dp[8] = dp[7] + dp[6] = 34
|
|
569
|
+
dp[9] = dp[8] + dp[7] = 55 ← 출력
|
|
339
570
|
```
|
|
340
571
|
|
|
341
|
-
|
|
572
|
+
**풀이 2 (공간 최적화)**
|
|
573
|
+
|
|
574
|
+
```python
|
|
575
|
+
import sys
|
|
576
|
+
read = sys.stdin.readline
|
|
577
|
+
|
|
578
|
+
n = int(read())
|
|
579
|
+
|
|
580
|
+
if n == 1:
|
|
581
|
+
print(1)
|
|
582
|
+
else:
|
|
583
|
+
a, b = 1, 2
|
|
584
|
+
for _ in range(3, n + 1):
|
|
585
|
+
a, b = b, (a + b) % 10007
|
|
586
|
+
print(b)
|
|
342
587
|
```
|
|
343
|
-
|
|
344
|
-
|
|
588
|
+
|
|
589
|
+
이전 두 값만 사용하므로 변수 2개로 O(1) 공간 달성.
|
|
590
|
+
|
|
591
|
+
**자주 하는 실수**
|
|
592
|
+
|
|
593
|
+
- n=1일 때 배열 크기 부족으로 IndexError
|
|
594
|
+
- 모듈러 연산을 마지막에만 적용 → 중간 값 오버플로우 (C++/Java)
|
|
595
|
+
- dp[0] 초기값 설정 혼동 (0 vs 1)
|
|
596
|
+
|
|
597
|
+
**관련 문제**
|
|
598
|
+
|
|
599
|
+
- 11727 — 2×n 타일링 2 (2×2 타일 추가)
|
|
600
|
+
- 1010 — 다리 놓기 (Silver V, 조합 + DP)
|
|
601
|
+
- 9625 — BABBA (Silver V, 피보나치 변형)
|
|
602
|
+
````
|
|
603
|
+
|
|
604
|
+
</details>
|
|
605
|
+
|
|
606
|
+
---
|
|
607
|
+
|
|
608
|
+
## MCP 도구
|
|
609
|
+
|
|
610
|
+
### 백준 (BOJ)
|
|
611
|
+
|
|
612
|
+
| 도구 | 설명 |
|
|
613
|
+
|------|------|
|
|
614
|
+
| `search_problems_boj` | 문제 검색 (티어, 태그, 키워드) |
|
|
615
|
+
| `get_problem_boj` | 문제 상세 조회 |
|
|
616
|
+
| `search_tags_boj` | 알고리즘 태그 검색 |
|
|
617
|
+
| `fetch_problem_content_boj` | 문제 본문 스크래핑 |
|
|
618
|
+
| `analyze_problem_boj` | 문제 분석 및 힌트 가이드 |
|
|
619
|
+
| `generate_hint_boj` | 3단계 힌트 생성 |
|
|
620
|
+
| `generate_review_template_boj` | 복습 템플릿 생성 |
|
|
621
|
+
| `analyze_code_submission_boj` | 코드 분석 및 피드백 |
|
|
622
|
+
|
|
623
|
+
### 프로그래머스 (Programmers)
|
|
624
|
+
|
|
625
|
+
| 도구 | 설명 |
|
|
626
|
+
|------|------|
|
|
627
|
+
| `search_problems_programmers` | 문제 검색 (난이도, 카테고리) |
|
|
628
|
+
| `get_problem_programmers` | 문제 상세 조회 |
|
|
629
|
+
| `fetch_problem_content_programmers` | 문제 본문 스크래핑 |
|
|
630
|
+
| `analyze_problem_programmers` | 문제 분석 |
|
|
631
|
+
| `generate_hint_programmers` | 힌트 생성 |
|
|
632
|
+
| `generate_review_template_programmers` | 복습 템플릿 |
|
|
633
|
+
| `analyze_code_submission_programmers` | 코드 분석 |
|
|
634
|
+
|
|
635
|
+
|
|
636
|
+
|
|
637
|
+
## Q&A
|
|
638
|
+
|
|
639
|
+
<details>
|
|
640
|
+
<summary><b>MCP가 뭔가요?</b></summary>
|
|
641
|
+
|
|
642
|
+
MCP(Model Context Protocol)는 AI 에이전트가 외부 도구를 호출할 수 있게 해주는 표준 프로토콜입니다. AlgoKit은 **로컬 MCP 서버**로 동작합니다. `npx`로 설치하면 사용자의 로컬 머신에서 실행되며, 별도의 원격 서버나 계정이 필요 없습니다.
|
|
643
|
+
|
|
345
644
|
```
|
|
645
|
+
사용자 → AI 에이전트 → AlgoKit MCP 서버 (로컬) → solved.ac API / 웹 스크래핑
|
|
646
|
+
↓
|
|
647
|
+
자연어 응답 생성
|
|
648
|
+
```
|
|
649
|
+
|
|
650
|
+
사용자는 MCP를 직접 다룰 필요 없이, AI에게 자연어로 요청하면 됩니다.
|
|
651
|
+
|
|
652
|
+
</details>
|
|
653
|
+
|
|
654
|
+
<details>
|
|
655
|
+
<summary><b>API 키가 필요한가요?</b></summary>
|
|
656
|
+
|
|
657
|
+
아니요. AlgoKit은 사용 중인 AI 에이전트(Claude Code, Codex, Gemini 등)를 그대로 활용하는 MCP 서버이므로, 별도의 API 키나 로그인 없이 바로 사용할 수 있습니다.
|
|
658
|
+
|
|
659
|
+
</details>
|
|
660
|
+
|
|
661
|
+
<details>
|
|
662
|
+
<summary><b>어떤 AI 에이전트를 지원하나요?</b></summary>
|
|
663
|
+
|
|
664
|
+
| 에이전트 | 지원 방식 |
|
|
665
|
+
|----------|-----------|
|
|
666
|
+
| **Claude Code** | Plugin Marketplace (자동 설치) |
|
|
667
|
+
| **Codex** | 설치 스크립트 제공 |
|
|
668
|
+
| **Gemini CLI** | 설치 스크립트 제공 |
|
|
669
|
+
| 기타 MCP 호환 에이전트 | 수동 설정 가능 |
|
|
670
|
+
|
|
671
|
+
</details>
|
|
672
|
+
|
|
673
|
+
<details>
|
|
674
|
+
<summary><b>Skill과 MCP 도구의 차이가 뭔가요?</b></summary>
|
|
675
|
+
|
|
676
|
+
- **MCP 도구**: AlgoKit 서버가 제공하는 개별 기능 단위 (예: `search_problems_boj`, `analyze_problem_boj`)
|
|
677
|
+
- **Skill** (`/algo:*`): 여러 MCP 도구를 조합해 하나의 워크플로우로 묶은 것 (예: `/algo:hint`는 내부적으로 `analyze_problem` + `fetch_problem_content`를 조합)
|
|
346
678
|
|
|
347
|
-
|
|
679
|
+
Skill을 사용하면 AI가 최적의 도구를 자동으로 선택하고 조합합니다. 자연어로 질문해도 동일한 결과를 얻을 수 있지만, Skill을 명시하면 의도가 더 정확하게 전달됩니다.
|
|
680
|
+
|
|
681
|
+
</details>
|
|
682
|
+
|
|
683
|
+
<details>
|
|
684
|
+
<summary><b>프로그래머스도 지원하나요?</b></summary>
|
|
685
|
+
|
|
686
|
+
네. 프로그래머스도 지원합니다.
|
|
687
|
+
|
|
688
|
+
</details>
|
|
689
|
+
|
|
690
|
+
<details>
|
|
691
|
+
<summary><b>오프라인에서도 사용할 수 있나요?</b></summary>
|
|
692
|
+
|
|
693
|
+
아니요. AlgoKit은 solved.ac API와 BOJ/프로그래머스 웹사이트에서 실시간으로 데이터를 가져오므로 인터넷 연결이 필요합니다.
|
|
694
|
+
|
|
695
|
+
</details>
|
|
696
|
+
|
|
697
|
+
<details>
|
|
698
|
+
<summary><b>ChatGPT나 Claude에 직접 물어보는 것과 뭐가 다른가요?</b></summary>
|
|
699
|
+
|
|
700
|
+
AI에게 직접 알고리즘 문제를 질문하면 학습 데이터에 의존하기 때문에, 문제 정보가 부정확하거나 존재하지 않는 문제를 지어내는 경우가 있습니다. 웹 검색을 사용하더라도 공식 출처가 아닌 블로그 등에서 데이터를 가져오는 경우가 많아 정확도가 보장되지 않습니다.
|
|
701
|
+
|
|
702
|
+
AlgoKit은 **공식 데이터 소스**(solved.ac API, BOJ/프로그래머스 웹사이트)에서 직접 실시간 데이터를 가져와 AI에게 전달하므로, 항상 정확한 문제 정보를 기반으로 응답합니다.
|
|
703
|
+
|
|
704
|
+
| | AI에 직접 질문 | AlgoKit 사용 |
|
|
705
|
+
|---|---|---|
|
|
706
|
+
| 데이터 소스 | 학습 데이터 또는 블로그 등 비공식 출처 | solved.ac API, BOJ/프로그래머스 공식 사이트 |
|
|
707
|
+
| 문제 정보 | 부정확하거나 존재하지 않는 문제 생성 가능 | 실시간 크롤링 (항상 최신, 정확) |
|
|
708
|
+
| 난이도/태그 | 부정확하거나 누락 | solved.ac 기준 정확한 데이터 |
|
|
709
|
+
| 힌트 제공 | 한 번에 전체 풀이 노출 위험 | Level 1→2→3 단계별 제공 |
|
|
710
|
+
| 복습 지원 | 매번 수동 요청 | 구조화된 복습 문서 자동 생성 |
|
|
711
|
+
| 학습 워크플로우 | 없음 | 검색→힌트→빈칸→리뷰→복습 일관된 흐름 |
|
|
712
|
+
|
|
713
|
+
</details>
|
|
714
|
+
|
|
715
|
+
---
|
|
348
716
|
|
|
349
717
|
## 개발
|
|
350
718
|
|