day 1
This commit is contained in:
28
src/day1.clj
Normal file
28
src/day1.clj
Normal file
@@ -0,0 +1,28 @@
|
||||
(ns day1
|
||||
(:require [clojure.edn :as edn]
|
||||
[clojure.string :as s]))
|
||||
|
||||
|
||||
(def input
|
||||
(->> (slurp "inputs/day1")
|
||||
s/split-lines
|
||||
(map #(s/split % #"\ +"))
|
||||
(map #(map edn/read-string %))))
|
||||
|
||||
(def left-list (map first input))
|
||||
(def right-list (map second input))
|
||||
|
||||
(def distances
|
||||
(map (fn [l r] (abs (- r l)))
|
||||
(sort left-list)
|
||||
(sort right-list)))
|
||||
|
||||
(defn count-n-in-right-list [n]
|
||||
(count (filter #(= n %) right-list)))
|
||||
|
||||
(defn similarity-for-n [n]
|
||||
(* n (count-n-in-right-list n)))
|
||||
|
||||
|
||||
(println "Total distance:" (reduce + distances))
|
||||
(println "Similarity score:" (reduce + (map similarity-for-n left-list)))
|
||||
Reference in New Issue
Block a user