adventofcode 2023-12-23

@alexalemi my solution takes 4257 msecs, but it is not a good one, it uses a magic number to limit. Maybe I will come up with a better function to cut search space.

I was surprised that not many people solved part 2 so far

Again got a profit from my bare-bones graph viewer 😄

I reduced the space to the graph from junction to junction and then did a depth first search. 90s for part 2 https://github.com/bhauman/adv2023/blob/main/src/adv2023/day23/sol.clj

Struggled for days to determine a proper A* minimal cost (negated, so maximal cost as desired) heuristic for the junction-to-junction graph, but finally my solution finds the correct result for part 2 in 2.6s (#scittle on iPhone 8 Safari).

I had a fun time (on this and other challenges this year) trying to use loom/ubergraph in anger. 13 min for Part 2, but good debuggability with the .dot output. Plus ubergraph made the graph compression in part 2 a nice little reduction: https://github.com/rgm/experiments/blob/1bcf0e8819d33325c7e9246476fa41f525602c86/2023/202312-advent-of-code/23/day_23_2.clj