From 7396fcc6d10660b5fac1b9f2f5caecf870994283 Mon Sep 17 00:00:00 2001 From: Adam Jeniski Date: Sun, 3 Dec 2023 10:19:03 -0500 Subject: [PATCH] inline all the things --- 2023/src/day03.clj | 34 +++++++++++++++------------------- 1 file changed, 15 insertions(+), 19 deletions(-) diff --git a/2023/src/day03.clj b/2023/src/day03.clj index ff9ad5b..b8408d4 100644 --- a/2023/src/day03.clj +++ b/2023/src/day03.clj @@ -16,14 +16,6 @@ (mapcat identity) (into {}))) -(defn touches-symbol? [[row-idx col-idx s]] - (let [length (count s)] - (->> (for [r [(dec row-idx) row-idx (inc row-idx)] - c (range (dec col-idx) (+ col-idx length 1))] - (char-map [r c])) - (filter (comp not nil?)) - (some #(not (or (Character/isDigit %) (= % \.))))))) - ;; part 1 (->> lines (map parse-nums) @@ -31,19 +23,16 @@ (map #(vector row (:start %) (:group %)) matches))) (mapcat identity) - (filter touches-symbol?) + (filter (fn touches-symbol? [[row-idx col-idx s]] + (let [length (count s)] + (->> (for [r [(dec row-idx) row-idx (inc row-idx)] + c (range (dec col-idx) (+ col-idx length 1))] + (char-map [r c])) + (filter (comp not nil?)) + (some #(not (or (Character/isDigit %) (= % \.)))))))) (map #(Integer/parseInt (nth % 2))) (reduce +)) -(defn touches-star? [[row-idx col-idx s]] - (let [length (count s)] - (->> (for [r [(dec row-idx) row-idx (inc row-idx)] - c (range (dec col-idx) (+ col-idx length 1))] - [[r c] (char-map [r c])]) - (filter #(not (nil? (second %)))) - (filter #(= \* (second %))) - (map #(vector % s))))) - ;; part 2 (let [data (->> lines (map parse-nums) @@ -51,7 +40,14 @@ (map #(vector row (:start %) (:group %)) matches))) (mapcat identity) - (map touches-star?) + (map (fn touching-star [[row-idx col-idx s]] + (let [length (count s)] + (->> (for [r [(dec row-idx) row-idx (inc row-idx)] + c (range (dec col-idx) (+ col-idx length 1))] + [[r c] (char-map [r c])]) + (filter #(not (nil? (second %)))) + (filter #(= \* (second %))) + (map #(vector % s)))))) (filter seq) (mapcat identity) (map #(vector (ffirst %) (second %))))