summaryrefslogtreecommitdiff
path: root/aoc/2024/03/python.py
diff options
context:
space:
mode:
authormhsn <mail@mhsn.net>2026-03-18 21:48:13 +0000
committermhsn <mail@mhsn.net>2026-03-18 21:48:13 +0000
commit86bac31392a76da84817eec020d2b84d099b3cc1 (patch)
treee2ee52db59b86b914d5b4bcceb19c9b5d899fff4 /aoc/2024/03/python.py
parent62fe361fc42dea75deaf7ac31c0ba6ba80e26a9c (diff)
downloadpuzzles-86bac31392a76da84817eec020d2b84d099b3cc1.tar.gz
puzzles-86bac31392a76da84817eec020d2b84d099b3cc1.zip
add other challenges supportHEADmaster
Diffstat (limited to 'aoc/2024/03/python.py')
-rwxr-xr-xaoc/2024/03/python.py23
1 files changed, 23 insertions, 0 deletions
diff --git a/aoc/2024/03/python.py b/aoc/2024/03/python.py
new file mode 100755
index 0000000..f456580
--- /dev/null
+++ b/aoc/2024/03/python.py
@@ -0,0 +1,23 @@
+#!/usr/bin/env python3
+
+import re
+from fileinput import input
+
+s = "\n".join(input())
+
+silver = sum(int(x) * int(y) for x, y in re.findall(r"mul\((\d{1,3}),(\d{1,3})\)", s))
+
+gold = 0
+active = True
+for g in re.findall(r"(?:mul\((\d{1,3}),(\d{1,3})\))|(don't\(\))|(do\(\))", s):
+ match g, active:
+ case (x, y, "", ""), True:
+ gold += int(x) * int(y)
+ case (_, _, "don't()", _), _:
+ active = False
+ case (_, _, _, "do()"), _:
+ active = True
+
+
+print("silver:", silver)
+print("gold:", gold)