63 lines
1.1 KiB
Python
63 lines
1.1 KiB
Python
import numpy as np
|
|
|
|
with open('day2.txt') as f:
|
|
l = [line.rstrip().split() for line in f]
|
|
|
|
# l = [[7, 6, 4, 2, 1],
|
|
# [1, 2, 7, 8, 9],
|
|
# [9, 7, 6, 2, 1],
|
|
# [1, 3, 2, 4, 5],
|
|
# [8, 6, 4, 4, 1],
|
|
# [1, 3, 6, 7, 9]]
|
|
|
|
print(l)
|
|
|
|
# l = np.loadtxt("day2.txt")
|
|
|
|
def test_if_safe(diff,inc):
|
|
# inc = np.sign(diff)
|
|
if abs(diff) > 3 or abs(diff) == 0:
|
|
print("Trop grand")
|
|
return False
|
|
elif np.sign(inc) != np.sign(diff):
|
|
print("Changement de sens")
|
|
return False
|
|
|
|
return True
|
|
|
|
def loop(list):
|
|
for k in range(len(list)-1):
|
|
diff2 = int(list[k+1])-int(list[k])
|
|
if k == 0:
|
|
inc2 = np.sign(diff2)
|
|
|
|
print("diff = ", diff2)
|
|
|
|
|
|
safe2 = test_if_safe(diff2,inc2)
|
|
if not safe2 :
|
|
break
|
|
inc2 = np.sign(diff2)
|
|
print("safe in loop", safe2)
|
|
return safe2
|
|
|
|
|
|
|
|
cnt = 0
|
|
|
|
for report in l:
|
|
incs = []
|
|
inc = 0
|
|
|
|
safe = True
|
|
print(report)
|
|
for k in range(len(report)):
|
|
report2 = report.copy()
|
|
report2.pop(k)
|
|
safe = loop(report2)
|
|
if safe :
|
|
cnt+=1
|
|
break
|
|
|
|
print("Cnt = ", cnt)
|