Dynamic Programming
- Optimize something given a constraint
- You can use this method when the problem can be broke in discrete subproblems
- Always involves a grid
- You're trying to optimize the cells values
- Each cell is a subproblem, think how you can break your problem in subproblems
- There's no single formula to calcule a dynamic-programming solution