add solution to 18 from local
This commit is contained in:
22
18/main.py
Normal file
22
18/main.py
Normal 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)))
|
||||
Reference in New Issue
Block a user