diff options
| author | Tyler Wardhaugh <tyler.wardhaugh@gmail.com> | 2022-04-16 16:17:31 -0700 |
|---|---|---|
| committer | Tyler Wardhaugh <tyler.wardhaugh@gmail.com> | 2022-04-16 16:17:31 -0700 |
| commit | af2cfddc99dda318b714d75b04f33b5c14b982d2 (patch) | |
| tree | 4bbb6145cc806ae3f7593d2905dbfcf432a3098a /challenge-160 | |
| parent | 7724b02c881db2c18e9c6469105b50e67fae37aa (diff) | |
| download | perlweeklychallenge-club-af2cfddc99dda318b714d75b04f33b5c14b982d2.tar.gz perlweeklychallenge-club-af2cfddc99dda318b714d75b04f33b5c14b982d2.tar.bz2 perlweeklychallenge-club-af2cfddc99dda318b714d75b04f33b5c14b982d2.zip | |
Ch160 (Clojure): Task 2
Diffstat (limited to 'challenge-160')
| -rw-r--r-- | challenge-160/tyler-wardhaugh/clojure/src/c160/t2.clj | 20 | ||||
| -rw-r--r-- | challenge-160/tyler-wardhaugh/clojure/test/c160/t2_test.clj | 6 |
2 files changed, 20 insertions, 6 deletions
diff --git a/challenge-160/tyler-wardhaugh/clojure/src/c160/t2.clj b/challenge-160/tyler-wardhaugh/clojure/src/c160/t2.clj index 06cadecda7..cb7dcc56e3 100644 --- a/challenge-160/tyler-wardhaugh/clojure/src/c160/t2.clj +++ b/challenge-160/tyler-wardhaugh/clojure/src/c160/t2.clj @@ -1,12 +1,24 @@ (ns c160.t2 - (:require [clojure.edn :as edn] - [clojure.pprint :refer [cl-format]])) + (:require [clojure.edn :as edn])) -(def DEFAULT-INPUT []) +(def DEFAULT-INPUT [[1 3 5 7 9]]) + +(defn splits + [coll] + (let [v (vec coll) + len (count v)] + (->> (range len) + (map (fn [i] [i (subvec v 0 i) (subvec v (inc i) len)]))))) + +(defn equilibrium-index + [coll] + (let [source (splits coll) + xf (keep (fn [[i a b]] (when (= (reduce + a) (reduce + b)) i)))] + (transduce xf (completing #(reduced %2)) -1 source))) (defn -main "Run Task 2 with a given input N, defaulting to the first example from the task description." [& args] (let [[N] (or (some->> args (map edn/read-string)) DEFAULT-INPUT)] - )) + (println (equilibrium-index N)))) diff --git a/challenge-160/tyler-wardhaugh/clojure/test/c160/t2_test.clj b/challenge-160/tyler-wardhaugh/clojure/test/c160/t2_test.clj index 32273d0178..a15c6ce81e 100644 --- a/challenge-160/tyler-wardhaugh/clojure/test/c160/t2_test.clj +++ b/challenge-160/tyler-wardhaugh/clojure/test/c160/t2_test.clj @@ -1,7 +1,9 @@ (ns c160.t2-test (:require [clojure.test :refer [deftest is testing]] - [c160.t2 :refer []])) + [c160.t2 :refer [equilibrium-index]])) (deftest task-2 (testing "Task 2 produces the correct result" - )) + (is (= 3 (equilibrium-index [1 3 5 7 9]))) + (is (= -1 (equilibrium-index [1 2 3 4 5]))) + (is (= 1 (equilibrium-index [2 4 2]))))) |
