コイン問題(最小枚数)

決まった額面の硬貨で目標金額をちょうど払うとき、必要な最小の硬貨枚数を表を埋めて求めます。

11
埋めるステップ
0
計算中の金額
x−c(残り金額)の答え
復元経路
使える硬貨の額面が決まっているとき、目標金額をちょうど作る最小の枚数は?
dp[x] =「金額 x を作る最小枚数」。金額 0 は 0 枚(dp[0]=0)から出発。
金額 x は、最後に置く硬貨 c を 1 枚決めれば 残り x−c の答えに 1 を足すだけ: dp[x] = 1 + min(dp[x−c] | 各硬貨 c)
「大きい硬貨から貪欲に」では最小にならない場合があり、DP なら必ず最小が出ます。

いま計算している金額

ここが DP の本質