solved day1 part2 and day2
This commit is contained in:
1 parent
ca9736d8ec
commit
0e732811ad
4 files changed
+1060
-3
No files matched your search
@@ -0,0 +1,48 @@
|
||||
with open('input.text', 'r') as file:
|
||||
data: list[str] = file.readlines()
|
||||
|
||||
# Parse Input
|
||||
|
||||
cases = []
|
||||
|
||||
for line in data:
|
||||
cases.append([int(s) for s in line.split(' ')])
|
||||
|
||||
def test_levels(levels: list[int]) -> bool:
|
||||
negative = levels[0] - levels[1] <= 0
|
||||
|
||||
for i in range(0, len(levels) - 1):
|
||||
change = levels[i] - levels[i + 1]
|
||||
|
||||
if (change <= 0) != negative or abs(change) > 3 or change == 0:
|
||||
return False
|
||||
|
||||
return True
|
||||
|
||||
# Part 1
|
||||
|
||||
total = 0
|
||||
for levels in cases:
|
||||
if test_levels(levels):
|
||||
total += 1
|
||||
|
||||
print(f'Part 1: {total}')
|
||||
|
||||
# Part 2
|
||||
|
||||
total = 0
|
||||
for levels in cases:
|
||||
safe = test_levels(levels)
|
||||
|
||||
if safe:
|
||||
total += 1
|
||||
else:
|
||||
for i in range(0, len(levels)):
|
||||
temp_levels = levels.copy()
|
||||
temp_levels.pop(i)
|
||||
|
||||
if test_levels(temp_levels):
|
||||
total += 1
|
||||
break
|
||||
|
||||
print(f'Part 1: {total}')
|
||||
Reference in new issue
Block a user