Mental Model
We want to find how many different ways we can make a total amount using given coin values, counting all combinations.
Analogy: Imagine you have different types of building blocks (coins) and you want to build a tower of a certain height (amount). You count all the ways to stack blocks to reach that height, using any number of each block.
coins: [1, 2, 3] amount: 4 ways array (index = amount): [1, 0, 0, 0, 0] ↑ Initially, 1 way to make 0 amount (use no coins).
