summaryrefslogtreecommitdiff
path: root/2024/day2/solve.py
diff options
context:
space:
mode:
Diffstat (limited to '2024/day2/solve.py')
-rw-r--r--2024/day2/solve.py31
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}")