7135 : 자판기 시뮬레이션
•시간제한: 2.000 S
•메모리제한: 256 MB
•제출: 0
•통과: 0
•만든사람: suakii
문제 설명
자판기에 투입한 돈으로 음료를 구매하는 시뮬레이션을 구현하십시오.
- 자판기 음료의 종류별 이름, 가격, 재고가 먼저 등록됩니다.
- 투입 금액 W에서 요청한 음료를 차례대로 구매합니다.
- 성공 시 차감하고 남은 투입 금액과 잔돈을 위한 동전 조합(500원, 100원, 50원, 10원 단위별 최소 동전 수)을 출력합니다.
- 실패 시 이유를 출력합니다. (돈 부족:
[제약 조건]
• 입력되는 모든 수는 정수입니다.
- 자판기 음료의 종류별 이름, 가격, 재고가 먼저 등록됩니다.
- 투입 금액 W에서 요청한 음료를 차례대로 구매합니다.
- 성공 시 차감하고 남은 투입 금액과 잔돈을 위한 동전 조합(500원, 100원, 50원, 10원 단위별 최소 동전 수)을 출력합니다.
- 실패 시 이유를 출력합니다. (돈 부족:
LACK_MONEY, 재고 부족: OUT_OF_STOCK, 없는 메뉴: NO_ITEM)[제약 조건]
• 입력되는 모든 수는 정수입니다.
입력 설명
첫째 줄에 음료의 가짓수 K가 주어집니다. (1 ≤ K ≤ 10)
둘째 줄부터 K개의 줄에
그 다음 줄에 최초 투입 금액 W가 주어집니다.
마지막 줄에 N개의 구매 요청 음료의 이름들이 공백으로 구분되어 주어집니다.
둘째 줄부터 K개의 줄에
음료이름 가격 재고가 공백으로 구분되어 주어집니다. (가격은 10원 단위 자연수)그 다음 줄에 최초 투입 금액 W가 주어집니다.
마지막 줄에 N개의 구매 요청 음료의 이름들이 공백으로 구분되어 주어집니다.
출력 설명
각 구매 요청에 대해 성공 시
SUCCESS 잔액 (500:개수,100:개수,50:개수,10:개수)을 출력하고, 실패 시 에러 코드를 한 줄씩 출력합니다.
입력 예시
COPY
복사되었습니다!
복사되었습니다!
3
coke 1000 5
cider 900 2
water 500 10
2000
coke cider water
출력 예시
COPY
복사되었습니다!
복사되었습니다!
SUCCESS 1000 (500:2,100:0,50:0,10:0)
SUCCESS 100 (500:0,100:1,50:0,10:0)
LACK_MONEY
도움
딕셔너리로 음료 정보를 관리하고, 동전 최소 개수 배분은 탐욕적(Greedy) 방식으로 큰 동전부터 몫과 나머지를 계산하여 구하십시오.