n = 1260
cnt = 0
# 가장 큰 단위의 화폐부터 차례대로 확인
coin_type = [500, 100, 50, 10]
for coin in coin_types :
count += n // coin #해당 화폐로 거슬러 줄 수 있는 동전의 갯수 세기
n %= coin
print(count)
거스름돈 문제가 그리디로 해결 가능한 이유는
가지고 있는 동전 중에서 큰 단위 = 항상 작은 단위의 배수.
그러므로 작은 단위의 동전들을 종합해 다른 해가 나올 수 없기 때문
ex) 500, 400, 100원을 가지고 800원을 만들때
500은 400의 배수가 아니다.
그러므로 그리디로 풀게되면 500+100+100+100 이 되는데,
최적의 해는 400+400 임.
이처럼 문제풀이를 위한 최소한의 아이디어를 떠올리고, 이것이 정당한지 검토해야 한다.
동전 단위가 배수 형태가 아닌 무작위일때 DP
그리디는 늘 최적의 해를 보장함을 검증해야만한다!