aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTyler Wardhaugh <twardhaugh@cap-rx.com>2021-06-06 10:13:18 -0700
committerTyler Wardhaugh <twardhaugh@cap-rx.com>2021-06-06 10:13:18 -0700
commit8ad51d6fd340d1ed47d08b22ca619a4e48b2eb9d (patch)
tree117291560aa567b10549b62708049885311eb975
parent989be019b568b8b58285a3f9d76b52ddcef65ff6 (diff)
downloadperlweeklychallenge-club-8ad51d6fd340d1ed47d08b22ca619a4e48b2eb9d.tar.gz
perlweeklychallenge-club-8ad51d6fd340d1ed47d08b22ca619a4e48b2eb9d.tar.bz2
perlweeklychallenge-club-8ad51d6fd340d1ed47d08b22ca619a4e48b2eb9d.zip
Ch115 (Clojure): Task 2
-rw-r--r--challenge-115/tyler-wardhaugh/clojure/src/tw/weekly/c115/t2.clj13
-rw-r--r--challenge-115/tyler-wardhaugh/clojure/test/tw/weekly/c115_test.clj10
2 files changed, 19 insertions, 4 deletions
diff --git a/challenge-115/tyler-wardhaugh/clojure/src/tw/weekly/c115/t2.clj b/challenge-115/tyler-wardhaugh/clojure/src/tw/weekly/c115/t2.clj
index 69ce0b6e32..f401262044 100644
--- a/challenge-115/tyler-wardhaugh/clojure/src/tw/weekly/c115/t2.clj
+++ b/challenge-115/tyler-wardhaugh/clojure/src/tw/weekly/c115/t2.clj
@@ -7,8 +7,17 @@
(def DEFAULT-INPUT [1 0 2 6])
(defn largest-multiple
- ""
- [coll])
+ "Determine the largest mulitple that can be formed using coll"
+ [coll]
+ (let [min-even (->> coll (filter even?) (reduce min))
+ freqs (-> coll frequencies (update min-even dec))
+ remaining (into [] (mapcat (fn [[num x]] (repeat x num))) freqs)]
+ (->> remaining
+ sort
+ (concat [min-even])
+ reverse
+ (reduce str "")
+ (Integer/parseInt))))
(defn -main
"Run Task 2 with a given input N, defaulting to the first example from the
diff --git a/challenge-115/tyler-wardhaugh/clojure/test/tw/weekly/c115_test.clj b/challenge-115/tyler-wardhaugh/clojure/test/tw/weekly/c115_test.clj
index f3edd10538..18141065d6 100644
--- a/challenge-115/tyler-wardhaugh/clojure/test/tw/weekly/c115_test.clj
+++ b/challenge-115/tyler-wardhaugh/clojure/test/tw/weekly/c115_test.clj
@@ -1,4 +1,10 @@
(ns tw.weekly.c115-test
(:require [clojure.test :refer [deftest is testing]]
- [tw.weekly.c115.t1 :refer []]
- [tw.weekly.c115.t2 :refer []]))
+ #_[tw.weekly.c115.t1 :refer []]
+ [tw.weekly.c115.t2 :refer [largest-multiple]]))
+
+(deftest task-2
+ (testing "Task 2, Largest Multiple"
+ (is (= 6210 (largest-multiple [1 0 2 6])))
+ (is (= 8412 (largest-multiple [1 4 2 8])))
+ (is (= 7614 (largest-multiple [4 1 7 6])))))