diff --git a/day1/part1.clj b/day1/part1.clj index 3316424..1c2c756 100644 --- a/day1/part1.clj +++ b/day1/part1.clj @@ -4,14 +4,12 @@ ; the previous. ; -(->> (slurp "./in") - (clojure.string/split-lines) - (map read-string) +(as-> (slurp "./in") $ + (clojure.string/split-lines $) + (map read-string $) (reduce - #(update [%2 (second %1)] 1 (partial + (if (> %2 (first %1)) 1 0))) - [999999 0] - ) - (second) - (println) - ) + #(cond-> (assoc %1 0 %2) (> %2 (first %1)) (update 1 inc)) + [(first $) 0] + (rest $)) + (println (second $))) diff --git a/day1/part2.clj b/day1/part2.clj index b972e11..e496c7d 100644 --- a/day1/part2.clj +++ b/day1/part2.clj @@ -5,25 +5,11 @@ ; the previous number, and the next number. ; -(loop [inc-count 0 - buff (repeat 4 (Integer/parseInt (read-line))) - ] - (let [next (read-line) - new-count (if (> (last buff) (first buff)) - (inc inc-count) - inc-count - ) - ] - (if (empty? next) - (println new-count) - (recur - new-count - (concat - (rest buff) - [(Integer/parseInt next)] - ) - ) - ) - ) - ) +(let [input (->> (slurp "./in") + clojure.string/split-lines + (mapv read-string))] + (println + (count + (filter #(< (get input %) (get input (+ % 3))) + (range 0 (- (count input) 3))))))