Files
python-aoc-2023/day04/part2.py
Sebastian Seedorf 418102c1ab Day 04
2023-12-06 09:30:13 +01:00

16 lines
586 B
Python

#!/usr/bin/env python3
from collections import defaultdict
lines = (x.strip() for x in open("input.txt"))
result = 0
tickets = defaultdict(int, {i: 1 for i in range(0)})
for idx, line in enumerate(lines):
tickets[idx] += 1
winnings = set(int(x.strip()) for x in line[line.find(":")+1:line.find("|")].split(" ") if len(x))
you_have = set(int(x.strip()) for x in line[line.find("|")+1:].split(" ") if len(x))
num_overlap = len(you_have.intersection(winnings))
for i in range(idx+1, idx+1+num_overlap):
tickets[i] += tickets[idx]
print(sum(tickets.values()))