add day 6
parent
5d1bf4161a
commit
6a9feffb4f
@ -0,0 +1,20 @@
|
||||
(require '[clojure.string :as str])
|
||||
|
||||
(def fish-init
|
||||
(->> (read-line)
|
||||
(#(str/split % #","))
|
||||
(map #(Integer/parseInt %))
|
||||
(vec)
|
||||
)
|
||||
)
|
||||
|
||||
(defn cycle-day [fish]
|
||||
(flatten
|
||||
(for [f (map dec fish)]
|
||||
(if (neg? f) [6 8] f)
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
(println (count (nth (iterate cycle-day fish-init) 80)))
|
||||
|
@ -0,0 +1,25 @@
|
||||
(require '[clojure.string :as str])
|
||||
|
||||
(->> (read-line)
|
||||
(#(str/split % #","))
|
||||
(map #(Integer/parseInt %))
|
||||
(reduce #(update %1 %2 inc) (vec (repeat 9 0)))
|
||||
(iterate
|
||||
#(let [nf (conj (vec (rest %)) (first %))]
|
||||
(update nf 6 (partial + (get nf 8)))
|
||||
)
|
||||
)
|
||||
(#(nth % 256))
|
||||
(apply +)
|
||||
(println)
|
||||
)
|
||||
|
||||
; ->> read input from stdin
|
||||
; split input string by commas
|
||||
; convert string array into number array
|
||||
; reduce to frequency counts
|
||||
; create iterator that returns next day's counts
|
||||
; get 256th iteration
|
||||
; sum all frequency counts
|
||||
; print results
|
||||
|
Loading…
Reference in New Issue