728x90
예제1) 거스름돈
문제 해설
이 문제의 핵심은 '가장 큰 화폐 단위부터' 돈을 거슬러 주는 방법으로 해결할 수 있다.
#코드 작성
def exch(money):
change = [500, 100, 50, 10]
result = []
for i in change:
result.append(money // i)
money = money % i
return result
exch(1260)
코드를 보면 화폐의 종류만큼 반복을 수행해야한다. 따라서 종류가 K개라고 할 때 위 소스코드의 시간복잡도는 O(K)이다.
이 알고리즘의 시간 복잡도는 동전의 총 종류에만 영향을 받고, 거슬러 줘야하는 금액의 크기와는 무관하다는 것을 알 수 있다.
728x90
'코딩테스트' 카테고리의 다른 글
그리디 1-4) 1이 될 때까지 (0) | 2023.09.21 |
---|---|
그리디 1-3) 숫자 카드 게임 (1) | 2023.09.21 |
그리디 1-2) 큰 수의 법칙 (0) | 2023.09.21 |
1주차 - 그리디 이론 (0) | 2023.09.21 |
코딩테스트 스터디 (0) | 2023.09.21 |