blob: 9e248c8ddd95b79c2310f2b36675515edf143510 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
(ns day-7)
(require '[clojure.string :as str])
(defn fuelCost [x]
(/ (* x (+ 1 x)) 2))
(defn totalDelta [xs dst]
(reduce + (map (fn [x] (fuelCost (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)))
|