From f0be441517bb80e4e2cc30ca59510c9ef16b8864 Mon Sep 17 00:00:00 2001 From: Maarten van Sluijs <72663441+MaartenVanSluijs@users.noreply.github.com> Date: Mon, 4 Dec 2023 12:29:30 +0100 Subject: [PATCH] day 4 q2 --- Questions/Day 4.py | 28 ++++++++++++++++++++++++++-- 1 file changed, 26 insertions(+), 2 deletions(-) diff --git a/Questions/Day 4.py b/Questions/Day 4.py index f3a2742..d3b7040 100644 --- a/Questions/Day 4.py +++ b/Questions/Day 4.py @@ -24,11 +24,35 @@ def question_1(data): def question_2(data: list[str]): sum = 0 + + # Make a dict with all card IDs set to 1 + cards = {} + for line in data: + id = line[5:8].replace(" ","") + cards[int(id)] = 1 + + for key in cards: + line = data[key-1] + + pipe_split = line.split("|") + found_numbers = pipe_split[1].split(" ") + # This removes empty chars + found_numbers = set(list(filter(("").__ne__, found_numbers))) + winning_numbers = pipe_split[0].split(":")[1].split(" ") + # Idem + winning_numbers = set(list(filter(("").__ne__, winning_numbers))) + + intersection = found_numbers.intersection(winning_numbers) + + for index in range(len(intersection)): + cards[key + index + 1] += cards[key] + + sum += cards[key] print(f"Answer to question 2 is: {sum}") if __name__ == "__main__": filepath = "Data/Day4.txt" data = load_data(filepath) - question_1(data) - # question_2(data) \ No newline at end of file + # question_1(data) + question_2(data) \ No newline at end of file