Day 10 (simplified)
This commit is contained in:
@@ -1,14 +1,12 @@
|
|||||||
import numpy as np
|
from collections import defaultdict
|
||||||
|
|
||||||
lines = sorted(int(x.strip()) for x in open("input.txt"))
|
lines = sorted(int(x.strip()) for x in open("input.txt"))
|
||||||
|
|
||||||
lines.append(lines[-1]+3)
|
cnt = defaultdict(int)
|
||||||
lines.insert(0, 0)
|
last = 0
|
||||||
lines = np.array(lines)
|
for line in lines:
|
||||||
|
mov = line - last
|
||||||
|
last = line
|
||||||
|
cnt[mov] += 1
|
||||||
|
|
||||||
diff = lines[1:] - lines[:-1]
|
print(cnt[1] * (cnt[3]+1))
|
||||||
unique, counts = np.unique(diff, return_counts=True)
|
|
||||||
cnt = dict(zip(unique, counts))
|
|
||||||
|
|
||||||
print(cnt)
|
|
||||||
print(cnt[1]*cnt[3])
|
|
||||||
|
|||||||
@@ -1,27 +1,12 @@
|
|||||||
lines = sorted(int(x.strip()) for x in open("input.txt"))
|
lines = sorted(int(x.strip()) for x in open("input.txt"))
|
||||||
|
|
||||||
one_count = 0
|
prevs = [0, 0, 0, 1]
|
||||||
possibilities = 1
|
last = 0
|
||||||
one_cache = [1]
|
|
||||||
|
|
||||||
|
|
||||||
def count_one_possibilities(one_cnt: int):
|
|
||||||
for idx in range(len(one_cache), one_cnt+1):
|
|
||||||
one_cache.append(sum(one_cache[-3:]))
|
|
||||||
return one_cache[one_cnt]
|
|
||||||
|
|
||||||
|
|
||||||
# only 3 and 1 differences are available
|
|
||||||
# 3 has to be taken / calculate possibilities for 1 hops
|
|
||||||
prev = 0
|
|
||||||
for line in lines:
|
for line in lines:
|
||||||
diff = line-prev
|
mov = line - last
|
||||||
prev = line
|
last = line
|
||||||
if diff == 1:
|
if mov > 0:
|
||||||
one_count += 1
|
prevs = prevs[mov:] + [0]*mov
|
||||||
elif diff == 3:
|
prevs[-1] = sum(prevs)
|
||||||
possibilities *= count_one_possibilities(one_count)
|
|
||||||
one_count = 0
|
|
||||||
possibilities *= count_one_possibilities(one_count)
|
|
||||||
|
|
||||||
print(possibilities) # 64793042714624
|
print(prevs[-1])
|
||||||
|
|||||||
Reference in New Issue
Block a user