Compare commits

...

2 Commits

Author SHA1 Message Date
1087a7649b do 2017 day 6 2026-04-26 11:01:02 -04:00
5077215205 do 2017 day 5 2026-04-26 11:00:57 -04:00
2 changed files with 56 additions and 0 deletions
+30
View File
@@ -0,0 +1,30 @@
(ns day05
(:require input-manager))
(def input (->> (input-manager/get-input 2017 5)
(mapv parse-long)))
(def MAX_IDX (count input))
;; part 1
(loop [steps 0
maze input
idx 0]
(let [maze' (update maze idx inc)
idx' (+ (maze idx) idx)]
(if (< -1 idx' MAX_IDX)
(recur (inc steps) maze' idx')
(inc steps))))
;; part 2
(loop [steps 0
maze input
idx 0]
(let [offset (maze idx)
maze' (update maze idx (if (>= offset 3)
dec
inc))
idx' (+ offset idx)]
(if (< -1 idx' MAX_IDX)
(recur (inc steps) maze' idx')
(inc steps))))
+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)))))