大きな問題を小さな部分問題に分割し、その計算結果をメモリに記録(メモ化)して再利用することで、同じ計算を繰り返さずに効率よく解くアルゴリズムの手法です。