projecteuler

My solutions to various problems from projecteuler.net
git clone https://github.com/michaelneuper/projecteuler.git
README | Files | Log | Refs

projecteuler/solutions/problem067/main.py (526B)


from functools import cache

triangle = open("triangle.txt")

triangle_list = []

for line in triangle:
    nums = [int(num) for num in line.split()]
    triangle_list.append(nums)

print(triangle_list)

@cache
def calc_sum(row, col, curr_sum):
    # base case
    if row == len(triangle_list):
        return curr_sum

    curr_sum += triangle_list[row][col]
    left = calc_sum(row + 1, col, curr_sum)
    right = calc_sum(row + 1, col + 1, curr_sum)

    return max(left, right)

max_sum = calc_sum(0, 0, 0)
print(max_sum)