Dynamic Programming (DP): How would you solve the change-making problem using memoization? How do I solve the following problem: "How many different ways can you make change for an amount, given a list of coins?" using dynamic programming?