src/2019/days/day-06.lisp @ ebd2a1bb4889
Add a few more days
| author | Steve Losh <steve@stevelosh.com> | 
|---|---|
| date | Wed, 11 Dec 2019 18:48:20 -0500 | 
| parents | 9b6e236a27a0 | 
| children | 182bdd87fd9e | 
(defpackage :advent/2019/06 #.cl-user::*advent-use*) (in-package :advent/2019/06) (define-problem (2019 6) (data read-lines) (301100 547) (let ((graph (digraph:make-digraph :test #'equal))) (iterate (for line :in data) (for (mass orbiter) = (str:split ")" line)) (digraph:insert-vertex graph mass) (digraph:insert-vertex graph orbiter) (digraph:insert-edge graph mass orbiter)) (values (recursively ((n 0) (node "COM")) (summation (digraph:successors graph node) :initial-value n :key (curry #'recur (1+ n)))) (- (length (astar :start "YOU" :neighbors (curry #'digraph:neighbors graph) :goalp (curry #'equal "SAN") :cost (constantly 1) :heuristic (constantly 0) :test #'equal)) 3))))