add solution to 18 from local

This commit is contained in:
2025-09-01 08:40:54 +02:00
parent 122cc581cb
commit 282763e951
2 changed files with 122 additions and 0 deletions

22
18/main.py Normal file
View File

@@ -0,0 +1,22 @@
def parse(s: str) -> list[list[int]]:
return [[int(i) for i in l.split()]
for l in s.strip().splitlines()]
def solve(l: list[list[int]]) -> int:
cache = {}
n = len(l)
l = reversed(l)
for i, row in enumerate(l):
for j, val in enumerate(row):
if i == 0:
cache.update({(i, j): val})
else:
l = cache[(i-1, j)]
r = cache[(i-1, j+1)]
cache.update({(i, j): val+max(l, r)})
return cache[(n-1, 0)]
if __name__ == '__main__':
with open("input", "r") as f:
input = f.read()
print(solve(parse(input)))