Upd Day05 & Day06

This commit is contained in:
2024-12-06 18:41:36 +01:00
parent fbe12ad205
commit 63765cedbe
8 changed files with 1761 additions and 1 deletions

20
2024/day05a.py Normal file
View File

@@ -0,0 +1,20 @@
from collections import defaultdict
input = [line.strip() for line in open('/home/bandeira/git.bandeira/aoc/2024/day05/input.day05') if line.strip()]
rules = defaultdict(set)
for line in input:
if '|' in line:
a, b = map(int, line.split('|'))
rules[a].add(b)
updates = [list(map(int, line.split(','))) for line in input if ',' in line]
is_correct = lambda u: all(not (set(u[:i]) & rules[u[i]]) for i in range(len(u)))
ans1 = sum(u[len(u) // 2] for u in updates if is_correct(u))
ans2 = sum(next(n for n in update if len(rules[n] & set(update)) == len(update) // 2)
for update in updates if not is_correct(update))
print(f"{ans1}\n{ans2}")