In computer science, dynamic programming (short: DP) is a method for reducing the
runtime of algorithms exhibiting the properties of overlapping subproblems and optimal substructure.
Mathematician Richard
Bellman invented dynamic programming in 1953. The field was founded as a systems analysis and engineering topic which is recognized by the
IEEE.
The problem looks
too hard to
solve - it must be dynamic programming!