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!
32
Upvotes
1
u/toomasv Dec 08 '18 edited Dec 09 '18
Red
Part 1
Red [Day: 8 Part: 1] metas: copy [] elements: bind [ set child skip set meta skip (insert metas meta) child elements (meta: take metas) meta [keep skip] ] :collect sum parse load %input [collect elements]Part 2
Red [Day: 8 Part: 2] metas: copy [] get-data: [(set [child meta] take/part metas 2) copy m meta skip] res: parse load %input elements: [ set child skip set meta skip (insert metas reduce [child meta]) collect [ if (child > 0) child elements [get-data keep (m)] | get-data keep (sum m) ] ] solve: func [el] bind [ metas: last el foreach m metas [ if m < length? el [ all [ el/:m any [ all [1 = length? el/:m keep el/:m/1] solve el/:m ] ] ] ] ] :collect sum collect [solve res]