diff options
| author | Sebastiano Tronto <sebastiano@tronto.net> | 2025-12-03 06:22:35 +0100 |
|---|---|---|
| committer | Sebastiano Tronto <sebastiano@tronto.net> | 2025-12-03 06:22:35 +0100 |
| commit | 39e9d936f52c7626884d1ca4c5262b117b0dc85c (patch) | |
| tree | 02bd60816e10f0f9253d89d10755388c03eaa01c /2025 | |
| parent | d662d817052767047807f8f1d5643608b9943fa0 (diff) | |
| download | aoc-39e9d936f52c7626884d1ca4c5262b117b0dc85c.tar.gz aoc-39e9d936f52c7626884d1ca4c5262b117b0dc85c.zip | |
Day 3 2025
Diffstat (limited to '2025')
| -rw-r--r-- | 2025/03/a.py | 16 | ||||
| -rw-r--r-- | 2025/03/b.py | 18 |
2 files changed, 32 insertions, 2 deletions
diff --git a/2025/03/a.py b/2025/03/a.py index 5fdb11b..9f4db62 100644 --- a/2025/03/a.py +++ b/2025/03/a.py | |||
| @@ -1,6 +1,18 @@ | |||
| 1 | import fileinput | 1 | import fileinput |
| 2 | 2 | ||
| 3 | s = 0 | ||
| 3 | with fileinput.input() as lines: | 4 | with fileinput.input() as lines: |
| 4 | for line in lines: | 5 | for line in lines: |
| 5 | ... | 6 | m1 = 0 |
| 6 | 7 | m2 = 0 | |
| 8 | mi = -1 | ||
| 9 | for i in range(len(line)-2): | ||
| 10 | if int(line[i]) > m1: | ||
| 11 | m1 = int(line[i]) | ||
| 12 | mi = i | ||
| 13 | for i in range(mi+1, len(line)-1): | ||
| 14 | if int(line[i]) > m2: | ||
| 15 | m2 = int(line[i]) | ||
| 16 | print(10*m1+m2) | ||
| 17 | s += 10*m1+m2 | ||
| 18 | print(s) | ||
diff --git a/2025/03/b.py b/2025/03/b.py new file mode 100644 index 0000000..4c74ae6 --- /dev/null +++ b/2025/03/b.py | |||
| @@ -0,0 +1,18 @@ | |||
| 1 | import fileinput | ||
| 2 | from functools import cache | ||
| 3 | |||
| 4 | neginf = -1e13 | ||
| 5 | |||
| 6 | @cache | ||
| 7 | def joltage(line, n): | ||
| 8 | if n == 0: | ||
| 9 | return 0 | ||
| 10 | if n > len(line)-1: | ||
| 11 | return neginf | ||
| 12 | j = 0 | ||
| 13 | for i in range(len(line)-1): | ||
| 14 | j = max(j, int(line[i])*10**(n-1)+joltage(line[i+1:],n-1)) | ||
| 15 | return j | ||
| 16 | |||
| 17 | with fileinput.input() as lines: | ||
| 18 | print(sum(joltage(line, 12) for line in lines)) | ||
