aboutsummaryrefslogtreecommitdiff
path: root/2025/07
diff options
context:
space:
mode:
authorSebastiano Tronto <sebastiano@tronto.net>2025-12-07 06:34:41 +0100
committerSebastiano Tronto <sebastiano@tronto.net>2025-12-07 06:34:41 +0100
commitaa7ddad8c6949b5dfb7a4c77b49c5e65ae5aa782 (patch)
treebcebe015f5764ed45d2c6aa6a22a3b3cf88cb3e3 /2025/07
parentbe683b101393d3566261c9cc10351398bd2e1b6c (diff)
downloadaoc-aa7ddad8c6949b5dfb7a4c77b49c5e65ae5aa782.tar.gz
aoc-aa7ddad8c6949b5dfb7a4c77b49c5e65ae5aa782.zip
Day 7 2025
Diffstat (limited to '2025/07')
-rw-r--r--2025/07/a.py17
-rw-r--r--2025/07/b.py15
2 files changed, 30 insertions, 2 deletions
diff --git a/2025/07/a.py b/2025/07/a.py
index 5fdb11b..0e13b75 100644
--- a/2025/07/a.py
+++ b/2025/07/a.py
@@ -1,6 +1,19 @@
1import fileinput 1import fileinput
2 2
3with fileinput.input() as lines: 3with fileinput.input() as lines:
4 for line in lines: 4 rows = [line[:-1] for line in lines]
5 ... 5 pos = [rows[0].find('S')]
6 6
7s = 0
8for row in rows[1:]:
9 newpos = set()
10 for p in pos:
11 if row[p] == '^':
12 s += 1
13 newpos.add(p-1)
14 newpos.add(p+1)
15 else:
16 newpos.add(p)
17 pos = list(newpos)
18
19print(s)
diff --git a/2025/07/b.py b/2025/07/b.py
new file mode 100644
index 0000000..41c0db0
--- /dev/null
+++ b/2025/07/b.py
@@ -0,0 +1,15 @@
1import fileinput
2
3with fileinput.input() as lines:
4 rows = [line[:-1] for line in lines]
5 pos = {rows[0].find('S'): 1}
6
7for row in rows[1:]:
8 newpos = {}
9 for p, w in pos.items():
10 for pp in [p-1,p+1] if row[p] == '^' else [p]:
11 t = newpos.get(pp, 0)
12 newpos[pp] = t + w
13 pos = dict(newpos)
14
15print(sum(pos.values()))

Generated with cgit - Back to sebastiano.tronto.net