[数学×Python]再帰呼び出しをマスターしよう 図4 最小のダメージを求める方法4段目に上がるためには、2段目か3段目にいる必要がある。2段目から上がる場合、(1) 2段目までの最小ダメージは2、(2) 2段目から4段目に上がるときのダメージは|d[4]−d[2]|=|2−2|=0なので、この場合のダメージは(1)+(2)=2+0=2となる。3段目から上がる場合、(3) 3段目までの最小ダメージは3、(2) 3段目から4段目に上がるときのダメージは|d[4]−d[3]|=|2−1|=1なので、この場合のダメージは(3)+(4)=3+1=4となる。従って、4段目に上がるための最小ダメージは2と4の小さい方、つまり2となる。この値がmemo[4]に記録される。 記事に戻る 羽山博,著