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