TIL/백준
[백준 5585 거스름돈] 그리디 알고리즘 활용하기
곰퓨타
2021. 4. 15. 00:47
이번에 해결한 문제는 다음과 같다.
5585번: 거스름돈
타로는 자주 JOI잡화점에서 물건을 산다. JOI잡화점에는 잔돈으로 500엔, 100엔, 50엔, 10엔, 5엔, 1엔이 충분히 있고, 언제나 거스름돈 개수가 가장 적게 잔돈을 준다. 타로가 JOI잡화점에서 물건을 사
www.acmicpc.net
다음과 같은 아이디어를 바탕으로 아래와 같이 코드를 작성하였다.
money = int(input())
coin = [500,100,50,10,5,1]
count,i = 0,0
money = 1000 - money
while money > 0 :
if money > coin[i] :
count += 1
money -= coin[i]
elif money == coin[i]:
count += 1
break
else :
i += 1
print(count)
책에서 제시하는 문제는 살짝 다르므로, 책에서 제시한 알고리즘을 이 문제에 적용시키면 다음과 같은 코드가 작성된다.
n = int(input())
count = 0
coin_types = [500,100,50,10,5,1]
n = 1000-n
for coin in coin_types :
count += n // coin
n %= coin
print(count)