From 85c54edbe1709eed6ceadd08011b70d11054ded4 Mon Sep 17 00:00:00 2001 From: Sijmen Date: Tue, 5 Dec 2023 13:01:55 +0000 Subject: [PATCH] Add day04.py --- day04.py | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 day04.py diff --git a/day04.py b/day04.py new file mode 100644 index 0000000..4c4c5cd --- /dev/null +++ b/day04.py @@ -0,0 +1,24 @@ +import fileinput + +# +# Part 1 +# +cards = [] +part1 = 0 +for i, line in enumerate(fileinput.input()): + card = line.rstrip().split(": ")[1] + (winning, owned) = ({int(i) for i in h.split()} for h in card.split(" | ")) + count = len(winning & owned) + cards.append(count) + part1 += 1 << count - 1 if count else 0 + +# +# Part 2 +# +dp = [0] * len(cards) +part2 = 0 +for i in range(len(cards)): + dp[i] = 1 + sum(dp[i - cards[-i - 1] : i]) + part2 += dp[i] + +print(part1, part2)