Skip to content

Commit b9381d4

Browse files
committed
day9
1 parent 788b469 commit b9381d4

File tree

2 files changed

+246
-0
lines changed

2 files changed

+246
-0
lines changed

2023/day9.py

+46
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
from common import ai
2+
import re
3+
import itertools
4+
from collections import defaultdict
5+
import math
6+
7+
inp = """
8+
0 3 6 9 12 15
9+
1 3 6 10 15 21
10+
10 13 16 21 30 45
11+
"""
12+
def parse(inp):
13+
for l in inp.strip().split("\n"):
14+
yield list(map(int, l.split(" ")))
15+
16+
def deltas(row):
17+
return [r2-r1 for r1,r2 in zip(row[:-1], row[1:])]
18+
19+
ai(deltas([0,3,6,9]), [3, 3, 3])
20+
21+
def p1(inp):
22+
t, t2 = 0, 0
23+
for seq in parse(inp):
24+
print(seq)
25+
dd = seq
26+
lasts = []
27+
firsts = []
28+
while True:
29+
lasts.append(dd[-1])
30+
firsts.append(dd[0])
31+
dd = deltas(dd)
32+
print(f" {dd}")
33+
if all([d == 0 for d in dd]):
34+
nxt = sum(lasts)
35+
prev = firsts[-1]
36+
# p = f0 - (f1 - f2)
37+
for f in reversed(firsts[:-1]):
38+
prev = f - prev
39+
print(f" {lasts} {firsts} next {nxt} prev {prev}")
40+
t += nxt
41+
t2 += prev
42+
break
43+
return t, t2
44+
45+
ai(p1(inp), (114, 2))
46+
ai(p1(open("day9.txt").read()), (2038472161, 1091))

0 commit comments

Comments
 (0)