069. 도서 관리 시스템
Medium
바이브코딩
MCPLibraryCRUD
문제 설명
[문제]
도서 관리 시스템 MCP 서버를 구현하시오.
도서를 제목과 저자로 등록하고, 제목으로 검색하며, 대출/반납 상태를 관리한다. 각 도서는 "대출 중"인지 아닌지 상태를 가진다. 이미 대출 중인 책은 다시 대출할 수 없고, 대출 중이 아닌 책은 반납할 수 없다.
[구현할 함수]
- add_book(title: str, author: str) -> int
제목 title, 저자 author인 도서를 등록한다(초기 상태는 대출 안 됨). 등록 후 전체 도서 수를 반환한다.
- search_book(title: str) -> str
제목으로 도서를 검색해 저자를 반환한다. 해당 제목의 도서가 없으면 빈 문자열 ""을 반환한다.
- borrow_book(title: str) -> bool
도서를 대출한다. 도서가 존재하고 대출 중이 아닐 때만 성공하여 True, 그 외(없거나 이미 대출 중)에는 False를 반환한다.
- return_book(title: str) -> bool
도서를 반납한다. 도서가 존재하고 대출 중일 때만 성공하여 True, 그 외(없거나 대출 중이 아님)에는 False를 반환한다.
[입력·상태]
서버는 도서 목록(제목, 저자, 대출 여부)을 상태로 유지한다. 초기 상태는 도서가 없는 빈 상태이다.
[제약]
- 새 도서의 초기 상태는 대출되지 않음이다.
- 이미 대출 중인 책의 borrow_book은 False이다.
- 대출 중이 아닌 책(또는 없는 책)의 return_book은 False이다.
- 없는 제목의 search_book은 "" 이다.
[예시]
add_book("파이썬", "홍길동") -> 1
add_book("파이썬", "홍길동"); search_book("파이썬") -> "홍길동"
add_book("파이썬", "홍길동"); borrow_book("파이썬") -> True; return_book("파이썬") -> True
add_book("파이썬", "홍길동"); borrow_book("파이썬") -> True; borrow_book("파이썬") -> False # 이미 대출 중
search_book("없음") -> "" # 없는 도서 (경계)
borrow_book("없음") -> False # 없는 도서 (경계)
return_book("없음") -> False # 없는 도서 (경계)
로그인하고 풀기
AI가 자동 채점하고 즉시 정답·해설을 알려줘요. 무료.