From 0a5c1f77d01fc0bd166494787f24562e2fd3a9e9 Mon Sep 17 00:00:00 2001 From: Botond Hende Date: Wed, 11 Dec 2024 10:18:23 +0100 Subject: renamed day folders to two digit format --- 2024/day05/solve.py | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 2024/day05/solve.py (limited to '2024/day05/solve.py') diff --git a/2024/day05/solve.py b/2024/day05/solve.py new file mode 100644 index 0000000..b2b578a --- /dev/null +++ b/2024/day05/solve.py @@ -0,0 +1,27 @@ +def middle_page_if_update_correct(update: list[str], rules: list[tuple[str, str]]) -> int: + for idx, page in enumerate(update): + for previous_page in (update[previous_idx] for previous_idx in range(idx)): + if (page, previous_page) in rules: + return 0 + + return int(update[len(update) // 2]) + + +rules = [] +updates = [] + +reading_updates = False +with open("input") as f: + for line in f.readlines(): + if reading_updates: + updates.append(line.strip().split(",")) + elif line == "\n": + reading_updates = True + else: + rules.append(tuple(line.strip().split("|"))) + +result = 0 +for update in updates: + result += middle_page_if_update_correct(update, rules) + +print(result) -- cgit v1.2.3-70-g09d2