From 6b733982f9f240c1c97f1fa705bfbe4cd93c640e Mon Sep 17 00:00:00 2001 From: mhsn Date: Fri, 12 Sep 2025 20:20:58 +0100 Subject: simplify python file structure --- 2024/04/python.py | 29 +++++++++++++++++++++++++++++ 2024/04/python/main.py | 27 --------------------------- 2024/04/python/pyproject.toml | 6 ------ 3 files changed, 29 insertions(+), 33 deletions(-) create mode 100755 2024/04/python.py delete mode 100644 2024/04/python/main.py delete mode 100644 2024/04/python/pyproject.toml (limited to '2024/04') diff --git a/2024/04/python.py b/2024/04/python.py new file mode 100755 index 0000000..fe5021b --- /dev/null +++ b/2024/04/python.py @@ -0,0 +1,29 @@ +#!/usr/bin/env python3 + +from fileinput import input + +grid = { + complex(idx, idy): c + for idy, line in enumerate(input()) + for idx, c in enumerate(line.strip()) +} +dirs = {complex(dx, dy) for dx in [-1, 0, 1] for dy in [-1, 0, 1]} + + +def xmas(x, v): + return all(grid.get(x + n * v) == c for n, c in enumerate("XMAS")) + + +def x_mas(x, v): + return ( + grid.get(x) == "A" + and grid.get(x + v) == grid.get(x + 1j * v) == "M" + and grid.get(x - v) == grid.get(x - 1j * v) == "S" + ) + + +silver = sum(xmas(x, v) for x in grid.keys() for v in dirs) +gold = sum(x_mas(x, v) for x in grid.keys() for v in dirs if abs(v) > 1) + +print("silver:", silver) +print("gold:", gold) diff --git a/2024/04/python/main.py b/2024/04/python/main.py deleted file mode 100644 index cc04f04..0000000 --- a/2024/04/python/main.py +++ /dev/null @@ -1,27 +0,0 @@ -from fileinput import input - -grid = { - complex(idx, idy): c - for idy, line in enumerate(input()) - for idx, c in enumerate(line.strip()) -} -dirs = {complex(dx, dy) for dx in [-1, 0, 1] for dy in [-1, 0, 1]} - - -def xmas(x, v): - return all(grid.get(x + n * v) == c for n, c in enumerate("XMAS")) - - -def x_mas(x, v): - return ( - grid.get(x) == "A" - and grid.get(x + v) == grid.get(x + 1j * v) == "M" - and grid.get(x - v) == grid.get(x - 1j * v) == "S" - ) - - -silver = sum(xmas(x, v) for x in grid.keys() for v in dirs) -gold = sum(x_mas(x, v) for x in grid.keys() for v in dirs if abs(v) > 1) - -print("silver:", silver) -print("gold:", gold) diff --git a/2024/04/python/pyproject.toml b/2024/04/python/pyproject.toml deleted file mode 100644 index 141044b..0000000 --- a/2024/04/python/pyproject.toml +++ /dev/null @@ -1,6 +0,0 @@ -[project] -name = "aoc-2024-04" -version = "0.1.0" -description = "advent of code 2024-04" -requires-python = ">=3.13" -dependencies = [] -- cgit v1.2.3