diff options
author | Clyne Sullivan <clyne@bitgloo.com> | 2022-11-30 19:55:31 -0500 |
---|---|---|
committer | Clyne Sullivan <clyne@bitgloo.com> | 2022-11-30 19:55:31 -0500 |
commit | 8d43e37df99f280377bed90284d6ac2428334804 (patch) | |
tree | 3a5042c9af29da52b4bac38fd78b3ccde77a1dbc /year2021/day12/part1.clj | |
parent | 66ed0b9d27850dc653abc8baa75884f3de311bfa (diff) |
move 2021 days to folder; update README
Diffstat (limited to 'year2021/day12/part1.clj')
-rw-r--r-- | year2021/day12/part1.clj | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/year2021/day12/part1.clj b/year2021/day12/part1.clj new file mode 100644 index 0000000..cdd4a43 --- /dev/null +++ b/year2021/day12/part1.clj @@ -0,0 +1,27 @@ +(require '[clojure.string :as str]) + +(def caves (->> (slurp "./in") + (str/split-lines) + (map #(str/split % #"-")) + (map (partial map str)) + (#(concat % (map reverse %))) + )) + +(defn get-caves-forward [klst] + (map #(cons (second %) klst) + (filter + #(or (< (int (first (second %))) 96) + (not-any? (partial = (second %)) klst)) + (filter #(= (first %) (first klst)) caves) + ))) + +(loop [lst (get-caves-forward ["start"]) ms '()] + (let [nxt (->> lst + (map get-caves-forward) + (apply concat)) + mtchs (concat ms (filter #(= (first %) "end") nxt)) + nxtlst (filter #(not= (first %) "end") nxt)] + (if (empty? nxtlst) + (println (count mtchs)) + (recur nxtlst mtchs)))) + |