_solutions/ MDX 파일의 문제 설명 및 풀이 품질을 개선합니다.
대상: $ARGUMENTS
$ARGUMENTS에서 다음을 추출합니다:
C10boj-1234)C-grade (보일러플레이트 풀이): 풀이 섹션에 다음 문구 중 하나가 포함된 파일:
B-grade (알고리즘명만 언급): 풀이 섹션이 2줄 이하이고 C-grade가 아닌 파일
A-grade (비교적 설명 있으나 보강 가능): 위 두 가지에 해당하지 않는 파일
frontmatter에 enhanced: true가 있는 파일은 스킵합니다.
# C-grade 검색 예시
grep -rl "문제의 조건을 그대로 구현한다" _solutions --include='*.mdx'
grep -rl "문제의 조건에 맞게 풀이한다" _solutions --include='*.mdx'
grep -rl "가능한 모든 경우를 탐색하여 답을 구한다" _solutions --include='*.mdx'
# enhanced 제외
grep -rL "enhanced: true" _solutions --include='*.mdx'
C-grade와 enhanced 제외를 교차하여 최종 대상 목록을 만듭니다.
--from 인자가 있으면 해당 slug 이후의 파일만 포함합니다 (파일명 정렬 기준).
대상 파일 중 --batch 크기만큼 잘라 사용자에게 보여줍니다:
=== 보강 대상 (배치 1/N) ===
총 대상: {total}개 | 이번 배치: {batch_size}개
| # | 파일 | 문제번호 | 문제이름 | 현재 풀이 |
|---|------|----------|----------|-----------|
| 1 | 20250715-boj-5586.mdx | 5586 | JOI와 IOI | 문제의 조건을 그대로 구현한다 |
| 2 | ... | ... | ... | ... |
계속 진행하시겠습니까?
AskUserQuestion으로 사용자 승인을 받습니다.
각 파일에 대해 순서대로 수행합니다:
Read로 현재 MDX 전체를 읽고, frontmatter / 풀이 섹션 / 코드 블록을 파악합니다.
WebSearch 검색:
백준 {number} {문제이름} 문제 입력 출력
검색 결과에서 블로그 또는 문제 설명이 있는 페이지를 WebFetch로 가져와:
을 추출합니다.
solved.ac API로 메타데이터 보충 (필요 시):
curl -s "https://solved.ac/api/v3/problem/show?problemId={number}"
코드 블록을 직접 읽고 알고리즘 로직을 파악합니다:
Edit 도구로 기존 파일을 수정합니다.
절대 규칙: 코드 블록은 수정하지 않습니다.
Before:
## 문제
[BOJ 5586 - JOI와 IOI](https://www.acmicpc.net/problem/5586)
After:
## 문제
[BOJ 5586 - JOI와 IOI](https://www.acmicpc.net/problem/5586)
알파벳 대문자로만 이루어진 문자열이 주어질 때, "JOI"와 "IOI"가 각각 몇 번 포함되어 있는지 구하라.
### 입력
알파벳 대문자로만 이루어진 문자열이 한 줄로 주어진다 (길이 1 이상 10,000 이하).
### 출력
첫째 줄에 "JOI"의 개수, 둘째 줄에 "IOI"의 개수를 출력한다.
### 예제
| 입력 | 출력 |
| --------- | ------- |
| `JOIOIOI` | `1` `2` |
Before:
## 풀이
문제의 조건을 그대로 구현한다.
After:
## 풀이
문자열을 처음부터 끝까지 순회하며 길이 3인 부분 문자열을 확인하여 "JOI"와 "IOI" 출현 횟수를 센다.
1. 인덱스 0부터 len(s)-3까지 반복하며 s[i:i+3] 부분 문자열을 추출한다
2. 부분 문자열이 "JOI"이면 joi_count를 증가시킨다
3. 부분 문자열이 "IOI"이면 ioi_count를 증가시킨다
4. 최종 카운트를 순서대로 출력한다
**핵심 아이디어**: 슬라이딩 윈도우 방식으로 고정 길이(3)의 부분 문자열을 확인하므로 O(N) 시간에 해결된다.
---