Level 5Exercise #119
Memoized coin change
Count ways to make amount with unlimited coins using a cached recursive state.
What you’ll practice
This Level 5 exercise focuses on cache decorator in the Algorithms curriculum. Solve the challenge prompt above using clear, idiomatic Python and the relevant language or standard-library tools.
Relevant Python reference: Python Standard Library — Algorithms.
Sample Test Cases
Example #1
Input:
coin_ways(coins=(1,2), amount=4)Output:
3Further Reading
Reference Solution
Reveal Reference Solution
def coin_ways(coins: tuple[int,...], amount: int) -> int: from functools import cache @cache def ways(i, remaining): if remaining == 0: return 1 if remaining < 0 or i == len(coins): return 0 return ways(i, remaining-coins[i]) + ways(i+1, remaining) return ways(0, amount)Pro Tips & Keyboard Shortcuts
Color Theme
Ctrl + K then T
Open VS Code Color Theme Quick Pick to select from 20 dark and light themes.
Editor SettingsCtrl + K
Open practice settings drawer to toggle line numbers, indenting, font size & hints.
Search MenuCtrl + /
Expand sidebar menu, focus search bar, and highlight search text instantly.
Focus Code Editor
Esc or Ctrl + `
Instantly highlight and focus code editor from anywhere, restoring cursor right where you left off.
Normal ViewEsc
Collapse sidebar and close all popups or settings drawers for clean focus view.