File tree Expand file tree Collapse file tree 1 file changed +16
-10
lines changed
src/advent_of_clojure/2024 Expand file tree Collapse file tree 1 file changed +16
-10
lines changed Original file line number Diff line number Diff line change 1
- (ns advent-of-clojure.2024.01 )
1
+ (ns advent-of-clojure.2024.01
2
+ (:require
3
+ [clojure.string :as str]))
2
4
3
5
(defn parse [str]
4
- (->> str
5
- (re-seq #"\d +" )
6
- (partition 2 )
7
- (reduce (fn [[l r] [ll rr]]
8
- [(conj l (parse-long ll)) (conj r (parse-long rr))])
6
+ (->> str str/split-lines
7
+ (reduce (fn [[left right] line]
8
+ (let [[l r] (->> line (re-seq #"\d +" ) (mapv parse-long))]
9
+ [(conj left l) (conj right r)]))
9
10
[[] []])))
10
11
11
12
(defn part-1 [list]
12
- (->> list (map sort) (apply map #(- %1 %2 )) (map abs) (reduce +)))
13
+ (->> list
14
+ (map sort)
15
+ (apply map #(abs (- %1 %2 )))
16
+ (apply +)))
13
17
14
- (defn part-2 [[l r]]
15
- (let [similarities (frequencies r)]
16
- (reduce + (map #(* % (or (similarities %) 0 )) l))))
18
+ (defn part-2 [[left right]]
19
+ (let [similarities (frequencies right)]
20
+ (->> left
21
+ (map #(* % (similarities % 0 )))
22
+ (apply +))))
17
23
18
24
(comment
19
25
(def input (parse (slurp " resources/2024/01.dat" )))
You can’t perform that action at this time.
0 commit comments