blob: 45f515b49b005bed8bb09f057511825c99e53e7a (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
(def data
(->> (slurp "day09")
(clojure.string/split-lines)
(map read-string)
vec))
(defn is-sum [n & ms]
(some #{n} (for [x ms y ms]
(+ x y))))
(def part1
(some #(if-not (apply is-sum (reverse %))
(last %))
(partition 26 1 data)))
part1 ; => 138879426
(some (fn [xs]
(let [s (take-while #(<= % part1) (reductions + xs))]
(if (some #{part1} s)
(apply + (apply (juxt min max) (take (count s) xs))))))
(iterate rest data)) ; => 23761694
|