Dynamic programming is a method for resolving a complex problem by breaking it down into an amount of simpler sub problems. It can be applicable to troubles exhibiting the components of overlapping sub problems and optimal substructure. Whenever applicable, the method takes less time than various other methods that don’t use the sub problem overlap. So as to solve a provided problem, using any dynamic programming approach, we need to solve different parts of the problem, then combine the solutions in the sub problems to reach a standard solution.