Dynamic Programming Approach Algorithm Design