From 580d09701f0377c4b80e6ea52cf8fa6b647778b1 Mon Sep 17 00:00:00 2001 From: Leah Neukirchen Date: Wed, 16 Dec 2020 20:38:55 +0100 Subject: day15 --- day15.clj | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 day15.clj (limited to 'day15.clj') diff --git a/day15.clj b/day15.clj new file mode 100644 index 0000000..569c5fb --- /dev/null +++ b/day15.clj @@ -0,0 +1,20 @@ +(def data [5 2 8 16 18 0 1]) + +(defn doit [n] + (letfn [(rec [lasta lastb last i] + (if (<= i n) + (let [new-last (if (and (lasta last) (lastb last)) + (- (lastb last) (lasta last)) + 0)] + (recur (assoc lasta new-last (lastb new-last)) + (assoc lastb new-last i) + new-last + (inc i))) + last))] + (rec {} + (into {} (map-indexed #(vector %2 %1) data)) + (last data) + (count data)))) + +(doit 2019) ; => 517 +(doit 30000000) ; => 3303657 slow -- cgit 1.4.1