diff options
Diffstat (limited to '2021/day7/07a.clj')
-rw-r--r-- | 2021/day7/07a.clj | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/2021/day7/07a.clj b/2021/day7/07a.clj new file mode 100644 index 0000000..d9cb0f7 --- /dev/null +++ b/2021/day7/07a.clj @@ -0,0 +1,19 @@ +(ns day-7) + +(require '[clojure.string :as str]) + +(defn totalDelta [xs dst] + (reduce + (map (fn [x] (Math/abs ^int (- x dst))) xs))) + +(defn calcIdealPos [xs start] + (def thisDelta (totalDelta xs start)) + (def nextDelta (totalDelta xs (+ 1 start))) + (cond (> nextDelta thisDelta) start + :else (calcIdealDst xs (+ 1 start)))) + +(def input (as-> (slurp "./input") x + (str/split x #",") + (map str/trim x) + (map #(. Integer parseInt %) x))) + +(totalDelta input (calcIdealPos input (apply min input))) |