2024 day 4.

This commit is contained in:
Mikaël Capelle
2024-12-04 07:35:22 +01:00
parent c19279fad3
commit f0d8e156a9
3 changed files with 189 additions and 3 deletions

View File

@@ -1,10 +1,46 @@
import sys
lines = sys.stdin.read().splitlines()
import numpy as np
answer_1 = ...
lines = np.array(list(map(list, sys.stdin.read().strip().splitlines())))
print(lines)
n = lines.shape[0]
answer_2 = ...
answer_1 = 0
for i in range(n):
line = "".join(lines[i, :])
answer_1 += line.count("XMAS") + line.count("SAMX")
column = "".join(lines[:, i])
answer_1 += column.count("XMAS") + column.count("SAMX")
diag = "".join(np.diagonal(lines, i))
answer_1 += diag.count("XMAS") + diag.count("SAMX")
diag = "".join(np.diagonal(lines[::-1, :], i))
answer_1 += diag.count("XMAS") + diag.count("SAMX")
if i != 0:
diag = "".join(np.diagonal(lines, -i))
answer_1 += diag.count("XMAS") + diag.count("SAMX")
diag = "".join(np.diagonal(lines[::-1, :], -i))
answer_1 += diag.count("XMAS") + diag.count("SAMX")
answer_2 = sum(
"".join(
(
lines[i - 1, j - 1],
lines[i - 1, j + 1],
lines[i + 1, j - 1],
lines[i + 1, j + 1],
)
)
in {"MSMS", "SSMM", "MMSS", "SMSM"}
for i in range(1, n - 1)
for j in range(1, n - 1)
if lines[i, j] == "A"
)
print(f"answer 1 is {answer_1}")
print(f"answer 2 is {answer_2}")