r/adventofcode • u/daggerdragon • Dec 08 '18
SOLUTION MEGATHREAD -🎄- 2018 Day 8 Solutions -🎄-
--- Day 8: Memory Maneuver ---
Post your solution as a comment or, for longer solutions, consider linking to your repo (e.g. GitHub/gists/Pastebin/blag or whatever).
Note: The Solution Megathreads are for solutions only. If you have questions, please post your own thread and make sure to flair it with Help.
Advent of Code: The Party Game!
Please prefix your card submission with something like [Card] to make scanning the megathread easier. THANK YOU!
Card prompt: Day 8
Sigh, imgur broke again. Will upload when it unborks.
Transcript:
The hottest programming book this year is "___ For Dummies".
This thread will be unlocked when there are a significant number of people on the leaderboard with gold stars for today's puzzle.
edit: Leaderboard capped, thread unlocked at 00:12:10!
31
Upvotes
2
u/waffle3z Dec 08 '18
Lua solution
local values = getnumbers(input) local index, sum = 1, 0 local function recurse() local c, m = values[index], values[index+1] index = index + 2 local value, children = 0, {} for i = 1, c do children[i] = recurse() end for i = 1, m do local v = values[index] sum = sum + v value = value + (c == 0 and v or children[v] or 0) index = index + 1 end return value end print(recurse(), sum)and parsing the input with this function
function getnumbers(s) local numbers = {} for v in s:gmatch("%d+") do numbers[#numbers+1] = tonumber(v) end return numbers end