# Dynamic Programming

[Dynamic programming](https://en.wikipedia.org/wiki/Dynamic_programming) is a method for solving a complex problem by breaking it down into a collection of simpler subproblems, solving each of those subproblems just once, and storing their solutions.
