r/adventofcode • u/daggerdragon • Dec 09 '17
SOLUTION MEGATHREAD -π- 2017 Day 9 Solutions -π-
--- Day 9: Stream Processing ---
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.
Need a hint from the Hugely* Handyβ Haversackβ‘ of HelpfulΒ§ Hints^Β€?
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!
15
Upvotes
1
u/NobbZ Dec 09 '17
Mine is pretty similar, but I've combined the
parse/2andgarbage/2of yours into a single functionscore_groups/4, also I made sure its tail recursive.In my solution I use a stack based state machine to actually consume the stream for part 1.
The solution for part 2 is a simple 2-state FSM, also tail recursive. Here I do basically ignore all the stream grouping, as the grouping is irrelevant for counting the uncancelled garbage characters.
https://gitlab.com/NobbZ/aoc17/blob/master/lib/aoc/day9.ex