문제 › 073

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