about summary refs log tree commit diff
path: root/day09.clj
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