Q. In dynamic programming, the approach where we solve the problem by solving its subproblems first and storing their results is called