This commit is contained in:
Adam Jeniski 2024-12-04 23:54:41 -05:00
parent c52b029321
commit 84fbe1a642

View File

@ -5,38 +5,37 @@
(def input (get-input 4)) (def input (get-input 4))
(defn get-char [row col] (defn get-char [[row col]]
(get (get input row) col)) (get (get input row) col))
;; part 1 ;; part 1
(->> input (->> input
c/get-coords c/get-coords
(map (fn [[row col]] (map (fn [[row col]]
(->> (for [offset (range 4)] (->> (for [offset (range 4)]
(map #(apply get-char %) [[row (+ col offset)]
[[row (+ col offset)] [row (- col offset)]
[row (- col offset)] [(+ row offset) col]
[(+ row offset) col] [(- row offset) col]
[(- row offset) col] [(- row offset) (- col offset)]
[(- row offset) (- col offset)] [(- row offset) (+ col offset)]
[(- row offset) (+ col offset)] [(+ row offset) (- col offset)]
[(+ row offset) (- col offset)] [(+ row offset) (+ col offset)]])
[(+ row offset) (+ col offset)]])) (map (partial map get-char))
(apply map vector) (apply map vector)
(filter #(= % (seq "XMAS"))) (filter #(= % (seq "XMAS")))
count))) count)))
(reduce +)) (reduce +))
;; part 2 ;; part 2
(->> input (->> input
c/get-coords c/get-coords
(filter #(= (apply get-char %) \A)) (filter #(= (get-char %) \A))
(map (fn [[row col]] (filter (fn [[row col]]
(->> [[[(dec row) (dec col)] [(inc row) (inc col)]] (->> [[[(dec row) (dec col)] [(inc row) (inc col)]]
[[(inc row) (dec col)] [(dec row) (inc col)]]] [[(inc row) (dec col)] [(dec row) (inc col)]]]
(map (partial map #(apply get-char %))) (map (partial map get-char))
(map set) (map set)
(apply = #{\M \S}) (apply = #{\M \S}))))
c/bool->binary))) count)
(reduce +))