with open('input.text', 'r') as file: data: list[str] = file.readlines() # Parse Input cases = [] for line in data: cases.append([int(s) for s in line.split(' ')]) def test_levels(levels: list[int]) -> bool: negative = levels[0] - levels[1] <= 0 for i in range(0, len(levels) - 1): change = levels[i] - levels[i + 1] if (change <= 0) != negative or abs(change) > 3 or change == 0: return False return True # Part 1 total = 0 for levels in cases: if test_levels(levels): total += 1 print(f'Part 1: {total}') # Part 2 total = 0 for levels in cases: safe = test_levels(levels) if safe: total += 1 else: for i in range(0, len(levels)): temp_levels = levels.copy() temp_levels.pop(i) if test_levels(temp_levels): total += 1 break print(f'Part 1: {total}')