- 문제
- 제출
거스름돈 개수가 최소인 경우를 찾는 문제이다. 즉, 지불하고 남은 돈을 최대한 큰 단위의 잔돈으로 거슬러 주는 방법을 찾는 것이다.
따라서, 거슬러 줘야 할 금액이 잔돈 단위보다 크다면 해당 잔돈을 뺀 금액을 남은 금액이라고 하고 거스름돈 개수를 증가시키면 된다.
N = int(input())
def changes(N):
change = 1000 - N
coins = [500,100,50,10,5,1]
count = 0
for c in coins:
while change >= c:
change -= c
count += 1
else:
continue
print(count)
changes(N)
거스름돈의 단위도 제시되어 있고, 그리디 알고리즘의 가장 기본적인 규칙에 해당하는 문제인 것 같다.
그리디 알고리즘을 단 번에 이해할 수 있는 문제라고 생각한다 :)
'Study > [파이썬] 백준온라인' 카테고리의 다른 글
[ 백준/python ] 1715 : 카드 정렬하기 (0) | 2021.07.30 |
---|---|
[ 백준/python] 2217 : 로프 (0) | 2021.07.30 |
[백준/python] 9251 : LCS (0) | 2021.07.15 |
[백준/python] 10844 : 쉬운 계단 수 (0) | 2021.07.15 |
[백준/python] 2225: 합분해 (0) | 2021.07.14 |