037. 미니 검색 엔진
Hard
바이브코딩
MCPSearchIndex
문제 설명
[문제]
문서를 색인(인덱싱)하고 키워드로 검색하는 미니 검색 엔진 MCP 서버를 구현한다. 문서마다 고유한 doc_id(문서 번호 문자열)와 본문(content)이 있다.
검색은 단순 포함 검색이다. 즉 키워드가 어떤 문서의 본문에 부분 문자열로 들어 있으면 그 문서가 검색 결과에 포함된다.
[구현할 함수]
- index_document(doc_id: str, content: str) -> int
문서를 색인에 추가(이미 있으면 갱신)하고, 추가 후 전체 문서 수를 반환한다.
- search(keyword: str) -> List[str]
keyword 가 본문에 포함된 문서들의 doc_id 배열을 반환한다. 결과는 오름차순으로 정렬한다. 일치하는 문서가 없으면 빈 배열을 반환한다.
- get_document(doc_id: str) -> str
해당 doc_id 의 본문을 반환한다. 없으면 빈 문자열("")을 반환한다.
[입력·상태]
서버 인스턴스 내부에 "doc_id -> content" 형태의 저장소를 유지한다. 초기 상태는 문서가 하나도 없는 빈 상태다.
[제약]
- search 의 결과 doc_id 배열은 오름차순으로 정렬한다(결과가 결정론적이도록).
- 일치 문서 없음 -> 빈 배열, 없는 doc_id 조회 -> 빈 문자열.
[예시] (각각 초기 빈 상태)
index_document("1", "Hello World") -> 1
search("없는단어") -> []
get_document("없음") -> ""
로그인하고 풀기
AI가 자동 채점하고 즉시 정답·해설을 알려줘요. 무료.