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)