aboutsummaryrefslogtreecommitdiff
path: root/2025/04
diff options
context:
space:
mode:
authorSebastiano Tronto <sebastiano@tronto.net>2025-12-04 06:34:16 +0100
committerSebastiano Tronto <sebastiano@tronto.net>2025-12-04 06:34:16 +0100
commitbc79fa83d3cb63d8445312b47dbed9295809b28a (patch)
tree31302da9489e25df417d3ffd88c6f69a8ccf2745 /2025/04
parent31c9f59a5f8946e8d90f2aad96e065ab4b496b67 (diff)
downloadaoc-bc79fa83d3cb63d8445312b47dbed9295809b28a.tar.gz
aoc-bc79fa83d3cb63d8445312b47dbed9295809b28a.zip
Day 4 2025
Diffstat (limited to '2025/04')
-rw-r--r--2025/04/a.py17
-rw-r--r--2025/04/b.py26
2 files changed, 42 insertions, 1 deletions
diff --git a/2025/04/a.py b/2025/04/a.py
index 5fdb11b..a693841 100644
--- a/2025/04/a.py
+++ b/2025/04/a.py
@@ -1,6 +1,21 @@
1import fileinput 1import fileinput
2 2
3def neigh(a, i, j):
4 return [
5 a[i-1][j-1], a[i-1][j], a[i-1][j+1],
6 a[i][j-1], a[i][j+1],
7 a[i+1][j-1], a[i+1][j], a[i+1][j+1],
8 ].count('@')
9
10s = 0
3with fileinput.input() as lines: 11with fileinput.input() as lines:
12 a = [['.'] * 200]
4 for line in lines: 13 for line in lines:
5 ... 14 a.append(['.'] + list(line.replace('\n', '.')))
15 a.append(['.'] * 200)
6 16
17for i in range(1,len(a)-1):
18 for j in range(1,len(a[1])-1):
19 if a[i][j] == '@' and neigh(a, i, j) < 4:
20 s += 1
21print(s)
diff --git a/2025/04/b.py b/2025/04/b.py
new file mode 100644
index 0000000..93b1fff
--- /dev/null
+++ b/2025/04/b.py
@@ -0,0 +1,26 @@
1import fileinput
2
3def neigh(a, i, j):
4 return [
5 a[i-1][j-1], a[i-1][j], a[i-1][j+1],
6 a[i][j-1], a[i][j+1],
7 a[i+1][j-1], a[i+1][j], a[i+1][j+1],
8 ].count('@')
9
10s = 0
11with fileinput.input() as lines:
12 a = [['.'] * 200]
13 for line in lines:
14 a.append(['.'] + list(line.replace('\n', '.')))
15 a.append(['.'] * 200)
16
17rem = True
18while rem:
19 rem = False
20 for i in range(1,len(a)-1):
21 for j in range(1,len(a[1])-1):
22 if a[i][j] == '@' and neigh(a, i, j) < 4:
23 s += 1
24 rem = True
25 a[i][j] = '.'
26print(s)

Generated with cgit - Back to sebastiano.tronto.net