File tree Expand file tree Collapse file tree 1 file changed +55
-0
lines changed Expand file tree Collapse file tree 1 file changed +55
-0
lines changed Original file line number Diff line number Diff line change 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
You can’t perform that action at this time.
0 commit comments