From 82429ac5d021135da9661c18f123ca5699692c15 Mon Sep 17 00:00:00 2001 From: Clyne Sullivan Date: Sun, 4 Dec 2022 07:49:02 -0500 Subject: [PATCH] day4: simplify --- day4/both.clj | 23 +++++++++++++++++++++++ day4/part1.clj | 12 ------------ day4/part2.clj | 12 ------------ 3 files changed, 23 insertions(+), 24 deletions(-) create mode 100644 day4/both.clj delete mode 100644 day4/part1.clj delete mode 100644 day4/part2.clj diff --git a/day4/both.clj b/day4/both.clj new file mode 100644 index 0000000..a59098a --- /dev/null +++ b/day4/both.clj @@ -0,0 +1,23 @@ +(defn part1pred [lst] + (or (and (>= (nth lst 0) (nth lst 2)) + (<= (nth lst 1) (nth lst 3))) + (and (>= (nth lst 2) (nth lst 0)) + (<= (nth lst 3) (nth lst 1))))) + +(defn part2pred [lst] + (or (and (>= (nth lst 0) (nth lst 2)) (<= (nth lst 0) (nth lst 3))) + (and (>= (nth lst 1) (nth lst 2)) (<= (nth lst 1) (nth lst 3))) + (and (>= (nth lst 2) (nth lst 0)) (<= (nth lst 2) (nth lst 1))) + (and (>= (nth lst 3) (nth lst 0)) (<= (nth lst 3) (nth lst 1))))) + +(def count-filtered (comp println count filter)) + +(def elf-pairs + (->> (slurp "input") + (#(clojure.string/split % #"[^\d]")) + (map read-string) + (partition 4))) + +(count-filtered part1pred elf-pairs) +(count-filtered part2pred elf-pairs) + diff --git a/day4/part1.clj b/day4/part1.clj deleted file mode 100644 index 72efa35..0000000 --- a/day4/part1.clj +++ /dev/null @@ -1,12 +0,0 @@ -(->> (slurp "input") - (#(clojure.string/split % #"[^0-9]")) - (map read-string) - (partition 4) - (map - #(or (and (>= (first %) (nth % 2)) - (<= (second %) (nth % 3))) - (and (>= (nth % 2) (first %)) - (<= (nth % 3) (second %))))) - (filter true?) - count - println) diff --git a/day4/part2.clj b/day4/part2.clj deleted file mode 100644 index d5929d6..0000000 --- a/day4/part2.clj +++ /dev/null @@ -1,12 +0,0 @@ -(->> (slurp "input") - (#(clojure.string/split % #"[^0-9]")) - (map read-string) - (partition 4) - (map - #(or (and (>= (first %) (nth % 2)) (<= (first %) (nth % 3))) - (and (>= (second %) (nth % 2)) (<= (second %) (nth % 3))) - (and (>= (nth % 2) (first %)) (<= (nth % 2) (second %))) - (and (>= (nth % 3) (first %)) (<= (nth % 3) (second %))))) - (filter true?) - count - println)