https://mixrolikus.cc/video/sWnBVPRA0yQ/5-steps-to-solve-any-dynamic-programming-problem