106. 미니 메시지 큐
Hard
바이브코딩
MCPQueueSystem
문제 설명
[문제]
미니 메시지 큐 MCP 서버를 구현한다. 메시지 큐는 보낸 메시지를 줄을 세워(FIFO, 먼저 넣은 것이 먼저 나옴) 보관했다가 받는 쪽이 하나씩 꺼내 가는 장치다. 이름 붙은 큐를 여러 개 만들 수 있고, 각 큐에 메시지를 보내고(send) 받을(receive) 수 있다.
서버는 큐 이름 -> 메시지 목록 매핑을 유지하며 시작 시 비어 있다.
[구현할 함수]
- create_queue(queue_name: str) -> int
빈 큐를 생성한다. 생성 후 전체 큐 개수를 반환한다.
- send_message(queue_name: str, message: str) -> bool
해당 큐의 맨 뒤에 메시지를 넣는다. 큐가 존재하면 True, 없으면 False.
- receive_message(queue_name: str) -> str
해당 큐에서 가장 먼저 들어온 메시지 1개를 꺼내(제거하며) 반환한다(FIFO). 큐가 없거나 비어 있으면 빈 문자열.
- get_queue_size(queue_name: str) -> int
해당 큐에 들어 있는 메시지 개수를 반환한다. 존재하지 않는 큐면 -1.
[입력·상태]
큐 이름·메시지는 문자열이다. 큐 매핑은 호출 간에 유지된다.
[제약]
- 존재하지 않는 큐에 대한 send_message·get_queue_size는 각각 False·-1을 반환한다.
- 생성 직후의 빈 큐 크기는 0이다(없는 큐의 -1과 구분).
- receive_message는 큐가 없거나 비었을 때 빈 문자열을 반환한다.
[예시]
create_queue("q"), send_message("q", "hi") -> true
create_queue("q"), send_message("q", "hi"), receive_message("q") -> "hi"
create_queue("q"), get_queue_size("q") -> 0
(빈 상태) send_message("없음", "hi") -> false
(빈 상태) receive_message("없음") -> ""
(빈 상태) get_queue_size("없음") -> -1
로그인하고 풀기
AI가 자동 채점하고 즉시 정답·해설을 알려줘요. 무료.