073. 할인 쿠폰 시스템
Medium
바이브코딩
MCPCommerceSystem
문제 설명
[문제]
할인 쿠폰을 관리하는 MCP 서버를 구현하시오.
쿠폰이란 쿠폰 코드(예: "SAVE10")와 할인율(예: 10퍼센트)을 묶은 것이다. 가격에 쿠폰을 적용하면 할인율만큼 깎인 가격이 나온다. 예를 들어 10퍼센트 쿠폰을 10000원에 적용하면 9000원이 된다.
[구현할 함수]
- create_coupon(discount: str, code: str) -> int
쿠폰을 생성한다. discount는 "10%"처럼 퍼센트 기호가 붙은 문자열이다(0~100 범위의 정수 퍼센트). code는 쿠폰 코드 문자열이다. 생성 후 전체 쿠폰 개수를 반환한다.
- apply_coupon(price: float, code: str) -> float
주어진 가격 price에 code 쿠폰의 할인율을 적용한 가격을 반환한다. 할인 후 가격 = price * (1 - 할인율/100). 존재하지 않는 코드면 price를 그대로 반환한다.
- validate_coupon(code: str) -> bool
해당 코드의 쿠폰이 존재하면 true, 없으면 false를 반환한다.
[입력·상태]
서버는 인스턴스 안에 "쿠폰 코드 -> 할인 퍼센트(정수)" 형태의 키-값 저장소를 유지한다. 초기 상태는 비어 있다.
[제약]
- discount 문자열은 "10%"처럼 끝에 퍼센트 기호가 붙어 있으며, 숫자 부분은 0~100 사이다.
- 없는 쿠폰에 apply_coupon을 하면 가격을 깎지 않고 그대로 돌려준다.
[힌트] 문자열에서 퍼센트 기호를 떼고 숫자만 추출 (Python: str.rstrip("%") / C++: substr / Java: replace)
[예시] (각 줄은 초기 빈 상태에서 시작)
create_coupon("10%", "SAVE10") -> 1
create_coupon("10%", "SAVE10") 후 apply_coupon(10000, "SAVE10") -> 9000
create_coupon("10%", "SAVE10") 후 validate_coupon("SAVE10") -> true
apply_coupon(10000, "없음") -> 10000 # 없는 쿠폰은 그대로
validate_coupon("없음") -> false
로그인하고 풀기
AI가 자동 채점하고 즉시 정답·해설을 알려줘요. 무료.