From 135a2f84d2929743b8d83074e277702d02f9281a Mon Sep 17 00:00:00 2001 From: Marvin Borner Date: Mon, 4 Dec 2023 06:20:23 +0100 Subject: tired --- 2023/04/solve.py | 43 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 2023/04/solve.py diff --git a/2023/04/solve.py b/2023/04/solve.py new file mode 100644 index 0000000..ea3c7fd --- /dev/null +++ b/2023/04/solve.py @@ -0,0 +1,43 @@ +import re + +L = [re.sub(" +", " ", l.strip()) for l in open("input").readlines()] + + +def solve1(): + res = 0 + for l in L: + ls = l.split(": ") + card = ls[0] + winning, have = [ + list(map(int, a.split(" "))) for a in ls[1].split(" | ") + ] + s = 0 + i = True + for x in have: + if x in winning: + s = s + 1 if i else s * 2 + i = False + res += s + print(res) + + +def solve2(): + res = 0 + dup = [1] * len(L) + for i, l in enumerate(L): + ls = l.split(": ") + card = ls[0] + winning, have = [ + list(map(int, a.split(" "))) for a in ls[1].split(" | ") + ] + s = 0 + for x in have: + if x in winning: + s += 1 + for j in range(i + 1, i + s + 1): + dup[j] += dup[i] + print(sum(dup)) + + +solve1() +solve2() -- cgit v1.2.3