Files
adventofcode/2024/gareth/day02/poc.py
Gareth 8f5cb6b236 Day02
2024-12-02 13:40:07 +00:00

46 lines
1.1 KiB
Python

def is_safe(report):
increasing = report[1] > report[0]
decreasing = report[1] < report[0]
for i in range(1, len(report)):
diff = report[i] - report[i - 1]
abs_diff = abs(diff)
if abs_diff < 1 or abs_diff > 3:
return False
if (diff > 0 and not increasing) or (diff < 0 and not decreasing):
return False
return True
def is_safe_with_dampener(report):
if is_safe(report):
return True
for i in range(len(report)):
modified_report = report[:i] + report[i+1:]
if is_safe(modified_report):
return True
return False
def read_reports_from_file(filename):
reports = []
with open(filename, 'r') as file:
for line in file:
report = list(map(int, line.split()))
reports.append(report)
return reports
def main():
filename = 'input.txt'
reports = read_reports_from_file(filename)
safe_count = 0
for report in reports:
if is_safe_with_dampener(report):
safe_count += 1
print("OUTPUT:", safe_count)
if __name__ == "__main__":
main()