forked from anumsh/Python-Programs
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmoney_change.py
More file actions
34 lines (23 loc) · 767 Bytes
/
money_change.py
File metadata and controls
34 lines (23 loc) · 767 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
# python3
import math
def change_naive(money):
min_coins = float("inf")
for num1 in range(money + 1):
for num3 in range(money // 3 + 1):
for num4 in range(money // 4 + 1):
if 1 * num1 + 3 * num3 + 4 * num4 == money:
min_coins = min(min_coins, num1 + num3 + num4)
return min_coins
def change(money):
denominations = [1, 3, 4]
minCoins = [0] + [math.inf] * money
for i in range(1, money + 1):
for j in denominations:
if i >= j:
coins = minCoins[i - j] + 1
if coins < minCoins[i]:
minCoins[i] = coins
return minCoins[money]
if __name__ == '__main__':
amount = int(input())
print(change(amount))