advent-of-code/2024/02/code.py
2025-02-21 10:15:46 +01:00

33 lines
796 B
Python

import numpy as np
from pathlib import Path
filepath = Path("./data/2_example")
filepath = Path("./data/2_input")
with open(filepath, 'r') as filein:
data = [np.array([int(i) for i in l.split()]) for l in filein.readlines()]
def report_is_safe(a: np.ndarray):
diff = np.diff(a)
if np.any(np.abs(diff)>3):
return False
sign = np.sign(diff)
steady = np.all(sign>0) or np.all(sign<0)
if not steady:
return False
return True
analysis = [report_is_safe(r) for r in data]
print(sum(analysis))
def brute_force(a: np.ndarray):
if report_is_safe(a):
return True
for i in range(len(a)):
if report_is_safe(np.delete(a, i)):
return True
return False
analysis = [brute_force(r) for r in data]
print(sum(analysis))