diff options
Diffstat (limited to '2024/day2/solve.py')
-rw-r--r-- | 2024/day2/solve.py | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/2024/day2/solve.py b/2024/day2/solve.py new file mode 100644 index 0000000..3ec9967 --- /dev/null +++ b/2024/day2/solve.py @@ -0,0 +1,31 @@ +safe = unsafe = 0
+
+
+def is_safe(report: str) -> bool:
+ last_num = 0
+ increase = True
+ for ii, num in enumerate((int(elem) for elem in report.split())):
+ if ii != 0:
+ if ii == 1:
+ increase = num > last_num
+
+ if (num > last_num) != increase:
+ return False
+
+ diff = abs(num - last_num)
+ if diff < 1 or diff > 3:
+ return False
+
+ last_num = num
+
+ return True
+
+
+with open("input") as f:
+ for report in f.readlines():
+ if is_safe(report):
+ safe += 1
+ else:
+ unsafe += 1
+
+print(f"safe: {safe}\nunsafe: {unsafe}")
|