From 0aed472a32a795ede30c27bf79e356ef86c7e1f0 Mon Sep 17 00:00:00 2001 From: Adam Date: Mon, 4 May 2026 08:47:30 -0400 Subject: [PATCH] do 2017 day 9 --- 2017/src/day09.clj | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 2017/src/day09.clj diff --git a/2017/src/day09.clj b/2017/src/day09.clj new file mode 100644 index 0000000..7147e84 --- /dev/null +++ b/2017/src/day09.clj @@ -0,0 +1,34 @@ +(ns day09 + (:require [clojure.string :as str] + core + input-manager)) + +(def input (input-manager/get-input-raw 2017 9)) + +(defn sum-recursive-depths [s sum idx depth] + (if (>= idx (count s)) + sum + (condp = (.charAt s idx) + \, (recur s sum (inc idx) depth) + \{ (recur s + (+ sum depth) + (inc idx) + (inc depth)) + \} (recur s + sum + (inc idx) + (max (dec depth) 0))))) + +(defn exlam-canceler [s] (str/replace s #"!." "")) +(def angle-bracket-regex #"<[^>]*>") + +(-> input + exlam-canceler + (str/replace angle-bracket-regex "") + (sum-recursive-depths 0 0 1)) + +(->> input + exlam-canceler + (re-seq angle-bracket-regex) + (map #(- (count %) 2)) + (reduce +))