coin-change

 avatar
unknown
python
2 years ago
322 B
1
Indexable
import math, functools


coins = [1,2,5]
amount = 11

@functools.cache
def M(i, n):
    if n == 0: return 0
    if n < 0:  return math.inf
    if i < 0:  return math.inf

    take_coin = 1 + M(i, n-coins[i])
    skip_coin = M(i-1, n)
    return min(take_coin, skip_coin)


print(M(len(coins)-1, amount))
Editor is loading...