From d1bb4af495094eec997cbe7e99a382877c7c7b5a Mon Sep 17 00:00:00 2001 From: Clyne Sullivan Date: Tue, 14 Dec 2021 22:04:10 -0500 Subject: [PATCH] checking out 2020 --- year2020/day1/part1.clj | 9 +++++++++ year2020/day1/part2.clj | 20 ++++++++++++++++++++ 2 files changed, 29 insertions(+) create mode 100644 year2020/day1/part1.clj create mode 100644 year2020/day1/part2.clj diff --git a/year2020/day1/part1.clj b/year2020/day1/part1.clj new file mode 100644 index 0000000..100c6d3 --- /dev/null +++ b/year2020/day1/part1.clj @@ -0,0 +1,9 @@ +(require 'clojure.set) + +(->> (slurp "./in") + clojure.string/split-lines + (map read-string) + ((juxt set (comp set #(map (partial - 2020) %)))) + (apply clojure.set/intersection) + (apply *) + (println)) diff --git a/year2020/day1/part2.clj b/year2020/day1/part2.clj new file mode 100644 index 0000000..0b6ef9d --- /dev/null +++ b/year2020/day1/part2.clj @@ -0,0 +1,20 @@ +(require 'clojure.set) + +(defn find-sum [sum lst] + (->> lst + ((juxt set (comp set #(map (partial - sum) %)))) + (apply clojure.set/intersection) + (vec))) + +(->> (slurp "./in") + clojure.string/split-lines + ((comp set (partial map read-string))) + ((fn [lst] + (reduce + #(let [fnd (find-sum (- 2020 %2) (clojure.set/difference lst #{%2}))] + (if (empty? fnd) %1 [%2 fnd])) + [] + lst))) + flatten + (apply *) + (println))