aoc2020/10/2.py

8 lines
356 B
Python
Raw Permalink Normal View History

2020-12-10 08:14:29 +00:00
nums = sorted([int(l) for l in open("input", "r").read().split("\n") if l])
nums = [0] + nums + [nums[-1]+3]
diffs = [b - a for (a, b) in zip(nums[:-1], nums[1:])]
groups = "".join([str(n) for n in diffs]).split("3")
maps = {1: 2, 2: 4, 3: 7}
from functools import reduce
print(reduce(lambda a, b: a * b, [maps[len(g) - 1] for g in groups if len(g) > 1]))