2024 Day 2
This commit is contained in:
18
2024/Day-02/day02-1.py
Executable file
18
2024/Day-02/day02-1.py
Executable file
@@ -0,0 +1,18 @@
|
||||
#!/usr/bin/python3
|
||||
|
||||
if __name__ == '__main__':
|
||||
safe = 0
|
||||
with open('input.txt', 'r') as input_file:
|
||||
for line in input_file:
|
||||
data = [int(x) for x in line.strip().split()]
|
||||
diffs = []
|
||||
for i in range(len(data)):
|
||||
if i == 0:
|
||||
diffs.append(0)
|
||||
else:
|
||||
diffs.append(data[i] - data[i-1])
|
||||
if all(i>0 for i in diffs[1:]) or all(i<0 for i in diffs[1:]):
|
||||
abs_diffs = [abs(x) for x in diffs[1:]]
|
||||
if not(any(i<1 for i in abs_diffs) or any(i>3 for i in abs_diffs)):
|
||||
safe += 1
|
||||
print(safe)
|
33
2024/Day-02/day02-2.py
Executable file
33
2024/Day-02/day02-2.py
Executable file
@@ -0,0 +1,33 @@
|
||||
#!/usr/bin/python3
|
||||
|
||||
from copy import copy
|
||||
|
||||
def is_safe(seq: list) -> bool:
|
||||
diffs = []
|
||||
for i in range(len(seq)):
|
||||
if i == 0:
|
||||
diffs.append(0)
|
||||
else:
|
||||
diffs.append(seq[i] - seq[i-1])
|
||||
if all(i>0 for i in diffs[1:]) or all(i<0 for i in diffs[1:]):
|
||||
abs_diffs = [abs(x) for x in diffs[1:]]
|
||||
if not(any(i<1 for i in abs_diffs) or any(i>3 for i in abs_diffs)):
|
||||
return True
|
||||
return False
|
||||
|
||||
if __name__ == '__main__':
|
||||
safe = 0
|
||||
with open('input.txt', 'r') as input_file:
|
||||
for line in input_file:
|
||||
data = [int(x) for x in line.strip().split()]
|
||||
if is_safe(data):
|
||||
safe += 1
|
||||
else:
|
||||
for i in range(len(data)):
|
||||
tmp_data = copy(data)
|
||||
tmp_data.pop(i)
|
||||
if is_safe(tmp_data):
|
||||
safe+=1
|
||||
break
|
||||
|
||||
print(safe)
|
Reference in New Issue
Block a user