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/day3/solve2.py | 38 -------------------------------------- 1 file changed, 38 deletions(-) delete mode 100644 2024/day3/solve2.py (limited to '2024/day3/solve2.py') diff --git a/2024/day3/solve2.py b/2024/day3/solve2.py deleted file mode 100644 index 3564eca..0000000 --- a/2024/day3/solve2.py +++ /dev/null @@ -1,38 +0,0 @@ -import re - -pattern = re.compile('mul\\(([0-9]{1,3}),([0-9]{1,3})\\)') -do_pattern = re.compile('do\\(\\)') -dont_pattern = re.compile("don't\\(\\)") - -with open("input") as f: - data = f.read() - -do_dont_intervals = [] - -for match in do_pattern.finditer(data): - do_dont_intervals.append((match.start(), True)) - -for match in dont_pattern.finditer(data): - do_dont_intervals.append((match.start(), False)) - -do_dont_intervals.sort(key=lambda elem: elem[0]) - - -def get_do_state(intervals: list[tuple[int, bool]], pos: int): - current_state = True - for elem in intervals: - if elem[0] > pos: - break - else: - current_state = elem[1] - - return current_state - - -result = 0 -for match in pattern.finditer(data): - if get_do_state(do_dont_intervals, match.start()): - result += int(match.group(1)) * int(match.group(2)) - - -print(result) -- cgit v1.2.3-70-g09d2