]> code.bitgloo.com Git - clyne/advent-of-code.git/commitdiff
day4: simplify
authorClyne Sullivan <clyne@bitgloo.com>
Sun, 4 Dec 2022 12:49:02 +0000 (07:49 -0500)
committerClyne Sullivan <clyne@bitgloo.com>
Sun, 4 Dec 2022 12:49:02 +0000 (07:49 -0500)
day4/both.clj [new file with mode: 0644]
day4/part1.clj [deleted file]
day4/part2.clj [deleted file]

diff --git a/day4/both.clj b/day4/both.clj
new file mode 100644 (file)
index 0000000..a59098a
--- /dev/null
@@ -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 (file)
index 72efa35..0000000
+++ /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 (file)
index d5929d6..0000000
+++ /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)