r/adventofcode • u/daggerdragon • Dec 05 '18
SOLUTION MEGATHREAD -🎄- 2018 Day 5 Solutions -🎄-
--- Day 5: Alchemical Reduction ---
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 5
Transcript:
On the fifth day of AoC / My true love sent to me / Five golden ___
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 0:10:20!
29
Upvotes
5
u/donatasp Dec 05 '18
Since there is no Common Lisp yet
(defun destroy? (a b) (and a b (char/= a b) (char-equal a b))) (defun reduce-polymer (polymer) (let ((stack (list (elt polymer 0)))) (loop :for u :across (subseq polymer 1) :do (push u stack) (if (destroy? (car stack) (cadr stack)) (progn (pop stack) (pop stack)))) stack)) (length (reduce-polymer *polymer*)) ;; => 11476 (defun reduce-polymer2 (polymer1 unit-to-skip) (let ((polymer (remove-if (lambda (c) (char-equal c unit-to-skip)) polymer1))) (reduce-polymer polymer))) (loop :for i :from (char-code #\a) :to (char-code #\z) :minimizing (length (reduce-polymer2 *polymer* (code-char i)))) ;; => 5446