about summary refs log tree commit diff
path: root/day06.clj
blob: e674209c68d38e6020298ea2efb14a0973b02fbd (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
(ns org.vuxu.aoc2021.day06
  (:require [clojure.string :as str]))

(def data
  (let [values (->> (str/split (str/trim-newline (slurp "day06")) #",")
                    (mapv parse-long))]
    (mapv #(count (filter #{%} values)) (range 0 9))))

(defn stepv [fishes]
  (mapv (fn [i]
          (cond (= i 8)    (fishes 0)
                (= i 6) (+ (fishes 0) (fishes (inc i)))
                :else                 (fishes (inc i))))
        (range 0 9)))

(def part1
  (apply + (nth (iterate stepv data) 80)))
;; => 373378

(def part2
  (apply + (nth (iterate stepv data) 256)))
;; => 1682576647495