summaryrefslogtreecommitdiff
path: root/2024/day3/solve2.py
diff options
context:
space:
mode:
authorBotond Hende <nettingman@gmail.com>2024-12-11 10:18:23 +0100
committerBotond Hende <nettingman@gmail.com>2024-12-11 10:18:23 +0100
commit0a5c1f77d01fc0bd166494787f24562e2fd3a9e9 (patch)
tree99b0d38ef86653b6ff4aae26381ebdf0895f829d /2024/day3/solve2.py
parentcbf5c348db4a693b15e455a23e07072587edf4b0 (diff)
renamed day folders to two digit format
Diffstat (limited to '2024/day3/solve2.py')
-rw-r--r--2024/day3/solve2.py38
1 files changed, 0 insertions, 38 deletions
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)