Day 15's definitely a sketcher. I'll try it tomorrow if I have the time - which I should, I think.
Note to self: generic BFS grid implementation, because it aaaaalways shows up.
Got it with depth first search + backtracking. I already had an a*-algorithm in a util namespace from previous AoC’s that I could use ::blush: https://gitlab.com/dmarjenburgh/adventofcode/blob/master/src/adventofcode/year_2019.clj#L445-490
wow, why core-sync?
https://github.com/namenu/advent-of-code/blob/master/src/graph.clj thanks to last year's me, i could reuse my version of bfs.
My intcode machine implementation uses core.async ever since the amplifiers puzzle. Inputs and outputs are delivered through channels. It may be overkill, but I wasn't sure how to make a generic machine that can work with any number of inputs and any number of outputs in any order. Running it is a bit messy and deadlocks are annoying during development, but I haven't really had to tweak the implementation since the last three puzzles that used it
It was so tempting to try and solve day 14 using an integer linear programming library - just convert the problem statement and plug into a solver! But unfortunately the domain seemed to be too large to handle in reasonable time
legacy code, ok :opieop:
If you think you are smarter than Eric, you are not…
Time to make pretty pictures. 🎨