day 11 part 1

This commit is contained in:
Aleh Suprunovich 2024-12-12 21:26:10 +03:00
parent 5ef8f4af1d
commit 8695b8b375

41
src/day11.clj Normal file
View File

@ -0,0 +1,41 @@
(ns day11
(:require [clojure.string :as string]
[helpers :refer [get-input]]))
(def stones
(string/split
;;"125 17"
(string/trim (get-input 11))
#" "))
(defn split-stone [stone]
(let [ss (split-at
(/ (count stone) 2)
stone)
seq->stone
(fn [s]
(str
(parse-long
(apply str s))))]
(mapv seq->stone ss)))
(defn blink [stone]
(cond
(= stone "0")
["1"]
(even? (count stone))
(split-stone stone)
:else
(vector
(str
(* 2024
(parse-long stone))))))
(time
(println "I blinked 25 times, there's"
(count
(loop [i 0 stones stones]
(if (= 25 i)
stones
(recur (inc i) (mapcat blink stones)))))
"stones!"))