Files
advent-of-code-2024/day7/code.py
Dmitry Fedotov 08c213c75c add day 7 part 1
2024-12-15 13:45:24 +03:00

39 lines
876 B
Python

import sys
sys.path.append('../aoclib')
from aoclib import Input
def parse_input(lines: list):
equations = list()
for l in lines:
s = l.split(':')
eq = (int(s[0]), [int(x.strip()) for x in s[1].split()])
equations.append(eq)
return equations
def solve1(eqs):
return sum([e[0] if may_be_true(e[0], e[1]) else 0 for e in eqs])
def may_be_true(val: int, lst: list[int]) -> bool:
if len(lst) == 1:
return lst[0] == val
if may_be_true(val, [lst[0]+lst[1], *lst[2:]]):
return True
elif may_be_true(val, [lst[0] * lst[1], *lst[2:]]):
return True
return False
if __name__ == '__main__':
lines = Input('input_test.txt').lines()
#lines = Input('input.txt').lines()
eq = parse_input(lines)
#part 1
print('part 1:', solve1(eq))
#part 2
print('part 2:', '')