문제 › 031

031. 투표 시스템

Medium 바이브코딩 MCPVoteSystem
문제 설명
[문제] 설문(poll) 투표 시스템 MCP 서버를 구현한다. 설문을 만들고, 투표를 받고, 결과를 집계한다. [입력/상태] - 서버는 poll_id를 키로 하여 각 설문의 {제목, 선택지 목록, 득표 현황}을 내부에 유지한다. 초기 상태는 비어 있다. - poll_id는 설문 생성 시 1부터 자동 증가하며 부여된다. [구현할 함수] - create_poll(title: str, options: List[str]) -> int 제목과 선택지 목록으로 새 설문을 만들고, 새로 부여된 poll_id(1부터 증가)를 반환한다. - cast_vote(poll_id: int, voter_id: str, vote: str) -> bool 해당 설문에 voter_id가 vote(선택지)에 투표한다. 성공하면 True. 설문이 없거나 vote가 유효한 선택지가 아니면 False. - get_results(poll_id: int) -> List[int] 설문의 각 선택지별 득표수를 선택지 순서대로 배열로 반환한다. 설문이 없으면 빈 배열. [제약] - get_results 결과 순서는 create_poll에 전달한 선택지 순서를 따른다. - 존재하지 않는 poll_id에 대해 cast_vote는 False, get_results는 빈 배열을 반환한다. [예시] create_poll("색", ["빨강","파랑"]) -> 1 이어서 cast_vote(1, "user1", "빨강") -> True, get_results(1) -> [1, 0] 빨강(user1), 파랑(user2) 각각 투표 후 get_results(1) -> [1, 1] cast_vote(999, "user", "빨강") -> False # 경계: 없는 설문 get_results(999) -> [] # 경계: 없는 설문
로그인하고 풀기 AI가 자동 채점하고 즉시 정답·해설을 알려줘요. 무료.