13 - 동적 프로그래밍: overlapping subproblems, optimal substructure