8000 refactor · motform/advent-of-clojure@052e4b9 · GitHub
[go: up one dir, main page]

Skip to content

Commit 052e4b9

Browse files
committed
refactor
1 parent 0755519 commit 052e4b9

File tree

1 file changed

+16
-10
lines changed
  • src/advent_of_clojure/2024

1 file changed

+16
-10
lines changed

src/advent_of_clojure/2024/01.clj

Lines changed: 16 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,25 @@
1-
(ns advent-of-clojure.2024.01)
1+
(ns advent-of-clojure.2024.01
2+
(:require
3+
[clojure.string :as str]))
24

35
(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)]))
910
[[] []])))
1011

1112
(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 +)))
1317

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 +))))
1723

1824
(comment
1925
(def input (parse (slurp "resources/2024/01.dat")))

0 commit comments

Comments
 (0)
0