advent-of-code/src/holt59/aoc/2024/day2.py

23 lines
639 B
Python
Raw Normal View History

2024-12-01 09:26:02 +00:00
import sys
2024-12-02 07:59:07 +00:00
def is_safe(level: list[int]) -> bool:
diff = [a - b for a, b in zip(level[:-1], level[1:], strict=True)]
2024-12-01 09:26:02 +00:00
2024-12-02 07:59:07 +00:00
return sum(d > 0 for d in diff) in (0, len(diff)) and all(
1 <= abs(d) <= 3 for d in diff
)
def is_any_safe(level: list[int]) -> bool:
return any(is_safe(level[:i] + level[i + 1 :]) for i in range(0, len(level)))
2024-12-02 17:44:50 +00:00
levels = [[int(c) for c in r.split()] for r in sys.stdin.read().strip().splitlines()]
2024-12-02 07:59:07 +00:00
answer_1 = sum(is_safe(level) for level in levels)
answer_2 = sum(is_safe(level) or is_any_safe(level) for level in levels)
2024-12-01 09:26:02 +00:00
print(f"answer 1 is {answer_1}")
print(f"answer 2 is {answer_2}")