문제 › 088

088. 포인트 적립 시스템

Medium 바이브코딩 MCPLoyaltySystem
문제 설명
[문제] 포인트 적립 시스템 MCP 서버를 구현한다. 사용자의 보유 포인트를 늘리거나(적립) 쓰고(사용), 현재 잔액을 조회하고, 지금까지의 변동 이력을 보여준다. 포인트를 쓸 때 잔액이 부족하면 거래가 거절된다. [구현할 함수] - earn_points(points: int) -> int points만큼 적립한다. 적립 후 보유 포인트를 반환한다. 이력에 적립 기록을 남긴다. - use_points(points: int) -> int points만큼 사용한다. 잔액이 부족하면 거래를 거절하고 -1을 반환한다(보유는 그대로). 성공하면 사용 후 보유 포인트를 반환하고 이력에 사용 기록을 남긴다. - get_points() -> int 현재 보유 포인트를 반환한다. - get_history() -> array<string> 포인트 변동 이력 배열을 반환한다(예: ["적립 100", "사용 50"]). 비어 있으면 빈 배열 []을 반환한다. [입력·상태] 서버는 보유 포인트와 변동 이력을 유지한다. 초기 보유는 0이고 이력은 비어 있다. [제약] - points는 정수이다. - 잔액보다 큰 금액을 사용하려 하면 use_points는 -1을 반환하고 상태를 바꾸지 않는다. [예시] (각 예시는 초기 0 상태에서 시작) earn_points(100) -> 100 get_points() -> 100 earn_points(100) use_points(30) -> 70 # 100 - 30 get_points() -> 70 earn_points(100) use_points(200) -> -1 # 잔액 부족, 거절 use_points(50) -> -1 # 초기 0 상태에서는 부족 get_points() -> 0 get_history() -> [] # 초기 상태
로그인하고 풀기 AI가 자동 채점하고 즉시 정답·해설을 알려줘요. 무료.