From aa7ddad8c6949b5dfb7a4c77b49c5e65ae5aa782 Mon Sep 17 00:00:00 2001 From: Sebastiano Tronto Date: Sun, 7 Dec 2025 06:34:41 +0100 Subject: Day 7 2025 --- 2025/07/a.py | 17 +++++++++++++++-- 2025/07/b.py | 15 +++++++++++++++ 2 files changed, 30 insertions(+), 2 deletions(-) create mode 100644 2025/07/b.py (limited to '2025/07') 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 @@ import fileinput with fileinput.input() as lines: - for line in lines: - ... + rows = [line[:-1] for line in lines] + pos = [rows[0].find('S')] +s = 0 +for row in rows[1:]: + newpos = set() + for p in pos: + if row[p] == '^': + s += 1 + newpos.add(p-1) + newpos.add(p+1) + else: + newpos.add(p) + pos = list(newpos) + +print(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 @@ +import fileinput + +with fileinput.input() as lines: + rows = [line[:-1] for line in lines] + pos = {rows[0].find('S'): 1} + +for row in rows[1:]: + newpos = {} + for p, w in pos.items(): + for pp in [p-1,p+1] if row[p] == '^' else [p]: + t = newpos.get(pp, 0) + newpos[pp] = t + w + pos = dict(newpos) + +print(sum(pos.values())) -- cgit v1.3