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

38 lines
912 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
s2 = 1
s6 = 2
for line in lines:
if is_first_list_smaller(line, [[2]]):
s2 += 1
s6 += 1
elif is_first_list_smaller(line, [[6]]):
s6 += 1
print(s2 * s6)