do 2017 day 6

This commit is contained in:
2026-04-26 11:01:02 -04:00
parent 5077215205
commit 1087a7649b
+26
View File
@@ -0,0 +1,26 @@
(ns day06
(:require [input-manager]
[core :refer [split-whitespace]]))
(def input
(->> (input-manager/get-input-raw 2017 6)
split-whitespace
(mapv parse-long)))
(loop [state input
i 0
seen {}]
(if (contains? seen state)
{:part-one i
:part-two (- i (seen state))}
(let [cnt (apply max state)
idx (->> state
(map-indexed vector)
(filter #(= (second %) cnt))
ffirst)]
(recur (->> (range cnt)
(map #(mod (+ idx 1 %) (count state)))
(reduce #(update %1 %2 inc) (assoc state idx 0)))
(inc i)
(assoc seen state i)))))