Making Change Problem Dynamic Programming