From 9bffb39837bf92fb5eb4316291070d08886dd4a7 Mon Sep 17 00:00:00 2001 From: Thomas Voss Date: Wed, 25 Dec 2024 12:16:38 +0100 Subject: Add 2024 day 25 part 1 solution --- 2024/25/puzzle-1.py | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100755 2024/25/puzzle-1.py (limited to '2024') diff --git a/2024/25/puzzle-1.py b/2024/25/puzzle-1.py new file mode 100755 index 0000000..2ad6581 --- /dev/null +++ b/2024/25/puzzle-1.py @@ -0,0 +1,30 @@ +#!/usr/bin/python3 + +import itertools + + +def main() -> None: + keys: list[int] = [] + locks: list[int] = [] + + with open("input", "r") as f: + schems = f.read().split("\n\n") + + for schem in schems: + n = 0 + for char in schem: + if char == '\n': + continue + n <<= 1 + if char == '#': + n |= 1 + (locks if n >= 0x7C0000000 else keys).append(n) + + def nand(x: int, y: int) -> bool: + return not x & y + + print(sum(itertools.starmap(nand, itertools.product(keys, locks)))) + + +if __name__ == "__main__": + main() \ No newline at end of file -- cgit v1.2.3