반응형
문제설명
마트에서 물건을 현금으로 구매할 경우, 거스름돈을 가장 적은 화폐(동전,지폐) 개수로 내어 주는 프로그램을 작성하시오.(단, 화폐입력은 10원 단위로 가정하고 화폐종류는, 5만원권,1만원궈느5천원권,1천원권,5백원권,1백원권,50원권,10원권 총 8종임)
입력형식
- 첫 번째 줄에 지불한 금액 m을 입력한다.(10<= m <= 100000)
- 두 번째 줄에 물품 가격 n을 입력한다.(10<=n<=m<=100000)
출력형식
- 거스름 돈으로 지불한 화폐 종류 개수와 총 화폐 개수를 공백으로 구분하여 출력한다.
전체코드(Python)
# 지불한 금액을 입력받는다.
money = int(input())
# 물품 가격을 입력 받는다.
cost = int(input())
# 거스름돈으로 줄 동전의 개수를 정의한다.
coin = [10,50,100,500,1000,5000,10000,50000]
# 거스름돈을 result에 저장한다.
result = money-cost
# 거스름돈의 개수와 거스름돈의 종류 개수를 0개로 초기화 한다.
coinCnt = 0
coinTypeCnt = 0
# 단위가 큰 잔존부터 순회하며, 몫이 0보다 클 경우 잔돈의 개수와 잔돈 종류를 증가시킨다.
for i in range(len(coin)-1,-1,-1):
if result // coin[i] > 0 :
coinTypeCnt = coinTypeCnt + 1
coinCnt = coinCnt + result//coin[i]
result = result % coin[i]
# 결과로 나온 값을 출력한다.
print(coinTypeCnt,coinCnt)
[참고]
반응형