summaryrefslogtreecommitdiff
path: root/2025/03
diff options
context:
space:
mode:
authormhsn <mail@mhsn.net>2025-12-03 09:43:42 +0000
committermhsn <mail@mhsn.net>2025-12-03 09:43:42 +0000
commit7b49412dcd6af8fc6fc92dd3cd86b0d47b21a5e0 (patch)
treedc76b9329c02afebe060acd81ba439cd5c07f330 /2025/03
parent11bfa80024879163a053e4e998482cdb40db562c (diff)
downloadaoc-7b49412dcd6af8fc6fc92dd3cd86b0d47b21a5e0.tar.gz
aoc-7b49412dcd6af8fc6fc92dd3cd86b0d47b21a5e0.zip
25-03 python p2
Diffstat (limited to '2025/03')
-rwxr-xr-x2025/03/python.py14
1 files changed, 9 insertions, 5 deletions
diff --git a/2025/03/python.py b/2025/03/python.py
index 4c16c6d..b0d4bfd 100755
--- a/2025/03/python.py
+++ b/2025/03/python.py
@@ -5,13 +5,17 @@ from fileinput import input
lines = [[int(b) for b in line.strip()] for line in input()]
-def joltage(bs: list[int]):
- d2 = max(bs[:-1])
- return max(d2 * 10 + max(bs[idx + 1 :]) for idx, b in enumerate(bs[:-1]) if b == d2)
+def jolt(bs: list[int], n: int) -> int:
+ if n == 1:
+ return max(bs)
+ n -= 1
+ b = max(bs[:-n])
+ i = bs.index(b)
+ return b * (10**n) + jolt(bs[i + 1 :], n)
-silver = sum(map(joltage, lines))
-gold = 0
+silver = sum(jolt(bs, 2) for bs in lines)
+gold = sum(jolt(bs, 12) for bs in lines)
print("silver:", silver)
print("gold:", gold)