Implement 2024 day 25

This commit is contained in:
2024-12-25 10:25:48 +01:00
parent b41571949e
commit 4a479c1646
3 changed files with 76 additions and 0 deletions

View File

@@ -0,0 +1,30 @@
import numpy
from . import CombinedRunner
class DayRunner(CombinedRunner):
@classmethod
def run_both(cls, input: str) -> tuple[int, None]:
blocks = input.strip().split("\n\n")
keys = []
locks = []
for block in blocks:
grid = numpy.array(list(map(list, block.splitlines())))
heights = numpy.count_nonzero(grid == "#", axis=0)
if block.startswith("#####"):
locks.append(heights)
else:
keys.append(heights)
fitting = 0
for key in keys:
for lock in locks:
if numpy.all((key + lock) <= 7):
fitting += 1
return fitting, None