Files
python-aoc-2022/day13/part1.py
Sebastian Seedorf abe76c0d38 Day 13
2022-12-14 09:41:49 +01:00

33 lines
870 B
Python

#!/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))