From 1b7b30e2964a2e371412db45902a117d21c8e625 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Anders=20Engl=C3=B6f=20Ytterstr=C3=B6m?= Date: Fri, 3 Jan 2025 10:30:36 +0100 Subject: [PATCH] Solve 2024:25 pt 1 "Code Chronicle" Merry XMAS! --- 2024-python/output/day_25.py | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 2024-python/output/day_25.py diff --git a/2024-python/output/day_25.py b/2024-python/output/day_25.py new file mode 100644 index 0000000..c3e53fa --- /dev/null +++ b/2024-python/output/day_25.py @@ -0,0 +1,32 @@ +from collections import Counter + + +def solve(data): + grids = [ + (m.strip()[0], list(map(Counter, zip(*m.split())))) for m in data.split("\n\n") + ] + locks = [] + keys = [] + for kind, grid in grids: + match kind: + case "#": + locks.append(tuple(str(g[kind] - 1) for g in grid)) + case ".": + keys.append(tuple(str(7 - g[kind] - 1) for g in grid)) + p1 = sum( + all(int(lock[i]) + int(k[i]) <= 5 for i in range(5)) + for lock in locks + for k in keys + ) + p2 = "God jul!" + return p1, p2 + + +if __name__ == "__main__": + with open("./input/25.txt", "r") as f: + inp = f.read().strip() + + p1, p2 = solve(inp) + + print(p1) + print(p2)