day 9!
This commit is contained in:
parent
8fcb93dcae
commit
6dacb32cd9
|
@ -0,0 +1,47 @@
|
|||
io.input("input")
|
||||
|
||||
sum1 = 0
|
||||
sum2 = 0
|
||||
for line in io.lines() do
|
||||
seq = {}
|
||||
for num in line:gmatch("%-*%d+") do -- THE SIGN!
|
||||
table.insert(seq,tonumber(num))
|
||||
end
|
||||
len = #seq
|
||||
seqs = {}
|
||||
table.insert(seqs, seq)
|
||||
--print(table.concat(seq,", "))
|
||||
ptr = 1
|
||||
diffs = {}
|
||||
repeat
|
||||
all0 = true
|
||||
curr = seqs[ptr]
|
||||
nseq = {}
|
||||
--print(ptr)
|
||||
for i=ptr+1,len do
|
||||
nseq[i] = curr[i]-curr[i-1]
|
||||
if nseq[i]~= 0 then all0 = false end
|
||||
--print(i,curr[i], curr[i-1], "->", nseq[i])
|
||||
end
|
||||
table.insert(seqs, nseq)
|
||||
ptr = ptr+1
|
||||
until all0
|
||||
nextnum = 0
|
||||
for i=#seqs,1,-1 do
|
||||
nextnum = nextnum + seqs[i][len]
|
||||
end
|
||||
sum1 = sum1 + nextnum
|
||||
--print("next:",nextnum)
|
||||
|
||||
-- part 2
|
||||
prevnum = 0
|
||||
for i=1,#seqs do
|
||||
n = seqs[i][i]
|
||||
prevnum = (i%2==0) and (prevnum-n) or prevnum+n
|
||||
end
|
||||
--print("prev:",prevnum)
|
||||
sum2 = sum2 + prevnum
|
||||
end
|
||||
|
||||
print("part 1", sum1)
|
||||
print("part 2", sum2)
|
|
@ -0,0 +1,3 @@
|
|||
0 3 6 9 12 15
|
||||
1 3 6 10 15 21
|
||||
10 13 16 21 30 45
|
Loading…
Reference in New Issue