문제 › 106

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가 자동 채점하고 즉시 정답·해설을 알려줘요. 무료.