Day 13
This commit is contained in:
32
day13/part1.py
Normal file
32
day13/part1.py
Normal file
@@ -0,0 +1,32 @@
|
||||
#!/usr/bin/env python3
|
||||
import json
|
||||
|
||||
lines = (json.loads(x.strip()) for x in open("input.txt") if x != "\n")
|
||||
|
||||
def is_first_list_smaller(m1, m2):
|
||||
for i1, i2 in zip(m1, m2):
|
||||
if isinstance(i1, list) and not isinstance(i2, list):
|
||||
i2 = [i2]
|
||||
elif not isinstance(i1, list) and isinstance(i2, list):
|
||||
i1 = [i1]
|
||||
|
||||
if isinstance(i1, list) and isinstance(i2, list):
|
||||
cmp = is_first_list_smaller(i1, i2)
|
||||
if cmp is not None:
|
||||
return cmp
|
||||
else:
|
||||
continue
|
||||
|
||||
if i1 < i2:
|
||||
return True
|
||||
if i2 < i1:
|
||||
return False
|
||||
return True if len(m1) < len(m2) else None if len(m1) == len(m2) else False
|
||||
|
||||
s = []
|
||||
for idx, line in enumerate(lines, 1):
|
||||
nxt = next(lines)
|
||||
if is_first_list_smaller(line, nxt):
|
||||
s.append(idx)
|
||||
|
||||
print(sum(s))
|
||||
Reference in New Issue
Block a user