Wednesday, June 17, 2015

Project Euler #67 - Maximum path sum II

프로젝트 오일러 67번 - 최대합 경로 두번째 문제
첨부한 파일에서 경로를 따라 가며 숫자를 더했을 때 최대합은?

18번 문제와 완전히 같은 문제. 18번은 숫자가 몇 개 안 되어서 '모든 경로'를 검토할 수 있었지만 여기서는 그게 불가능하다는 정도의 차이.
풀이방법도 18번에서 설명했던 것과 같다.

tri = [map(int, line.strip().split(' ')) for line in open('p067_triangle.txt').readlines()][::-1]

for i in range(1,100):
    for j in range(100-i):
        tri[i][j] += max(tri[i-1][j],tri[i-1][j+1])

print tri[99][0]

0.006초.

No comments: