advent2020/ten.py

38 lines
767 B
Python
Executable File

#!/usr/bin/env python3
from functools import reduce
import re, sys
import sys
import numpy as np
def tpl(l): # get nice tuple from line
return int(l)
def p(*args):
print(*args)
def threes(l):
return sum(x == 3 for x in l)
def onez(l):
return sum(x == 1 for x in l)
fn = sys.argv[1] if len(sys.argv) > 1 else 'input10'
with open(fn) as f:
lines = [l.strip() for l in f.readlines()]
n = [0, ] + sorted([tpl(l) for l in lines])
n += [n[-1] + 3]
d = [b - a for a, b in zip(n, n[1:])]
p(onez(d) * threes(d))
ways = 1
ones = 0
for r in d:
if r == 3:
ways *= (1, 1, 2, 4, 7)[ones]
ones = 0
elif r == 1:
ones += 1
else:
p('not 1 not 3')
p(ways)