Dynamic Programming — Part III: Beyond Two Choices (Coin Change)

“The hardest part of Dynamic Programming isn’t writing the recurrence. It’s discovering it.”