본문 바로가기
카테고리 없음

그리디 거스름돈

by Saans 2022. 12. 23.

from 이것이 코딩테스트다 with 파이썬 학습기록

 

거슬러줘야 할 동전의 최소 개수

n = 1260 # 금액
count = 0

# 큰 단위의 화폐부터 차례대로 확인
coin_types = [500, 100, 50, 10]

for coin in coin_types:
	count += n // coin # 해당 화폐로 거슬러 줄 수 있는 동전의 개수 세기
	n %= coin

print(count)

시간복잡도 O(K)

동전의 총 종류에만 영향, 거슬러 줘야 하는 금액의 크기와는 무관

거스름돈 문제를 그리디 알고리즘으로 해결할 수 있는 이유: 가지고 있는 동전 중에서 큰 단위가 항상 작은 단위의 배수이므로 작은 단위 동전들을 종합해 다른 해가 나올 수 없음

 

댓글