Skip to content

Commit f3dc347

Browse files
committed
Day 2 - part 2 (incomplete)
1 parent a6d6844 commit f3dc347

File tree

1 file changed

+32
-0
lines changed

1 file changed

+32
-0
lines changed

2024/day02/solution.py

+32
Original file line numberDiff line numberDiff line change
@@ -34,10 +34,42 @@ def count_safe(reports: list[tuple[int]]) -> int:
3434

3535
return safe
3636

37+
def count_safe_tolerate(reports: list[tuple[int]]) -> int:
38+
safe = 0
39+
40+
for report in reports:
41+
prev = report[0]
42+
sign = None
43+
levels = 0
44+
45+
for pos in report[1:]:
46+
dif = pos-prev
47+
48+
if abs(dif) > 3:
49+
levels += 1
50+
elif dif == 0:
51+
levels += 1
52+
elif positive(dif) != sign and sign is not None:
53+
levels += 1
54+
else:
55+
prev = pos
56+
sign = positive(dif)
57+
58+
if levels > 1:
59+
break
60+
else:
61+
safe += 1
62+
63+
return safe
64+
3765
if __name__ == '__main__':
3866
# reports = parse_input('test-input')
3967
reports = parse_input('input')
4068

4169
# Part 1
4270
safe = count_safe(reports)
4371
print(f"{safe} reports are safe")
72+
73+
# Part 2
74+
safe = count_safe_tolerate(reports)
75+
print(f"{safe} reports are actually safe")

0 commit comments

Comments
 (0)