diff options
| author | mhsn <mail@mhsn.net> | 2025-12-03 09:43:42 +0000 |
|---|---|---|
| committer | mhsn <mail@mhsn.net> | 2025-12-03 09:43:42 +0000 |
| commit | 7b49412dcd6af8fc6fc92dd3cd86b0d47b21a5e0 (patch) | |
| tree | dc76b9329c02afebe060acd81ba439cd5c07f330 /2025/03 | |
| parent | 11bfa80024879163a053e4e998482cdb40db562c (diff) | |
| download | aoc-7b49412dcd6af8fc6fc92dd3cd86b0d47b21a5e0.tar.gz aoc-7b49412dcd6af8fc6fc92dd3cd86b0d47b21a5e0.zip | |
25-03 python p2
Diffstat (limited to '2025/03')
| -rwxr-xr-x | 2025/03/python.py | 14 |
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) |
