Day 02
This commit is contained in:
parent
ba4105f018
commit
e3d4f30aeb
1 changed files with 45 additions and 0 deletions
45
day02.py
Normal file
45
day02.py
Normal file
|
@ -0,0 +1,45 @@
|
||||||
|
#!/usr/bin/env python3
|
||||||
|
|
||||||
|
import operator
|
||||||
|
|
||||||
|
# 1
|
||||||
|
m = list()
|
||||||
|
with open("day02") as f:
|
||||||
|
for l in f:
|
||||||
|
m.append(list(map(int, l.split())))
|
||||||
|
|
||||||
|
def cmp2(l, op):
|
||||||
|
e1 = l[0]
|
||||||
|
for e2 in l[1: ]:
|
||||||
|
if op(e1, e2): e1 = e2
|
||||||
|
else: return False
|
||||||
|
return True
|
||||||
|
|
||||||
|
def safe(x):
|
||||||
|
if not cmp2(x, operator.lt) and not cmp2(x, operator.gt):
|
||||||
|
return False
|
||||||
|
if not cmp2(x, lambda e1, e2: abs(e1-e2) <= 3):
|
||||||
|
return False
|
||||||
|
return True
|
||||||
|
|
||||||
|
res = 0
|
||||||
|
for e in m:
|
||||||
|
if safe(e): res+=1
|
||||||
|
|
||||||
|
print(res)
|
||||||
|
|
||||||
|
# 2
|
||||||
|
def ssafe(x):
|
||||||
|
if safe(x): return True
|
||||||
|
|
||||||
|
for i in range(len(x)):
|
||||||
|
nx = x[:i] + x[i+1:]
|
||||||
|
if safe(nx): return True
|
||||||
|
|
||||||
|
return False
|
||||||
|
|
||||||
|
res = 0
|
||||||
|
for l in m:
|
||||||
|
if ssafe(l): res += 1
|
||||||
|
|
||||||
|
print(res)
|
Loading…
Reference in a new issue