Update Day 07
This commit is contained in:
20
2024/day05/day05a.py
Normal file
20
2024/day05/day05a.py
Normal 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}")
|
||||
Reference in New Issue
Block a user