Problem 18

17については1000までの文字に置き換えるのも工夫する必要があるんですが….工夫しても書かないといけないし.spell自信ないし.解いたソースも無いのでパスです.

values = [[int(value) for value in line.rstrip().split(' ')]for line in open('tri.txt')]
values.reverse()
for i in xrange(len(values)-1):
    for j in range(len(values[i+1])):
        values[i+1][j] = max([values[i+1][j] + values[i][j],
                            values[i+1][j] + values[i][j+1]])
print values[len(values)-1][0]


例のごとくテキストファイルにコピー.
方法としては,三角形を逆さにして,上の二つどっち足したら下の大きくなる?その時の値で更新しちゃえ!作戦.最後のてっぺんのところに最大値が残るよ!テヘ!