summaryrefslogtreecommitdiff
path: root/2024/03/python.py
diff options
context:
space:
mode:
authormhsn <mail@mhsn.net>2025-09-12 20:20:58 +0100
committermhsn <mail@mhsn.net>2025-09-12 20:36:09 +0100
commit6b733982f9f240c1c97f1fa705bfbe4cd93c640e (patch)
treedad623203c8bb40f372e0ea14479c2f564efda79 /2024/03/python.py
parent9299c4ef655b88eb8b571864c939c78b27f77723 (diff)
downloadaoc-6b733982f9f240c1c97f1fa705bfbe4cd93c640e.tar.gz
aoc-6b733982f9f240c1c97f1fa705bfbe4cd93c640e.zip
simplify python file structure
Diffstat (limited to '2024/03/python.py')
-rwxr-xr-x2024/03/python.py23
1 files changed, 23 insertions, 0 deletions
diff --git a/2024/03/python.py b/2024/03/python.py
new file mode 100755
index 0000000..f456580
--- /dev/null
+++ b/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)