Skip to content

Commit 47cc96a

Browse files
committed
Completed day 2 of year 2024
1 parent 35abe28 commit 47cc96a

File tree

1 file changed

+55
-0
lines changed

1 file changed

+55
-0
lines changed

2024/2.py

Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
#!/usr/bin/env python
2+
# -*- coding: utf-8 -*-
3+
4+
split_data = True
5+
completed = True
6+
raw_data = None # Not To be touched
7+
8+
def part1(data):
9+
safe = 0
10+
11+
for line in data:
12+
reports = [int(x) for x in line.split()]
13+
increasing = True if reports[1] > reports[0] else False
14+
for r1, r2 in zip(reports[:-1], reports[1:]):
15+
if increasing and r1 > r2:
16+
break
17+
elif not increasing and r1 < r2:
18+
break
19+
elif not (1 <= abs(r2 - r1) <= 3):
20+
break
21+
else:
22+
safe += 1
23+
24+
return safe
25+
26+
def part2(data):
27+
28+
safe = 0
29+
30+
for line in data:
31+
reports = [int(x) for x in line.split()]
32+
worked = False
33+
for i in range(len(line)):
34+
nreports = reports[:i] + reports[i+1:]
35+
increasing = True if nreports[1] > nreports[0] else False
36+
for r1, r2 in zip(nreports[:-1], nreports[1:]):
37+
if increasing and r1 > r2:
38+
# print('Broke in increase,', r1, r2)
39+
break
40+
elif not increasing and r1 < r2:
41+
# print('Broke in decrease,', r1, r2)
42+
break
43+
elif not (1 <= abs(r2 - r1) <= 3):
44+
# print('Broke in diff,', r1, r2)
45+
break
46+
else:
47+
worked = True
48+
49+
if worked: break
50+
51+
if worked: safe += 1
52+
53+
54+
55+
return safe

0 commit comments

Comments
 (0)