Sha256: 96129709e54c9f72e16cba12f5f297e368fe020f2801e01acf4bb6e315768cb9

Contents?: true

Size: 629 Bytes

Versions: 396

Compression:

Stored size: 629 Bytes

Contents

(ns change)

(defn issue [sum coins]
  (when (or (neg? sum) (and (pos? sum) (every? #(< sum %) coins)))
    (throw (IllegalArgumentException. "cannot change")))
  (let [coins (sort coins)
        all-amounts (reduce (fn [cached-amounts amount]
                              (->> coins
                                   (filter #(<= % amount))
                                   (map #(conj (cached-amounts (- amount %) []) %))
                                   (apply min-key count)
                                   (assoc cached-amounts amount)))
                            {} (range 1 (inc sum)))]
    (all-amounts sum)))

Version data entries

396 entries across 396 versions & 1 rubygems

Version Path
trackler-2.2.1.180 tracks/clojure/exercises/change/src/example.clj
trackler-2.2.1.179 tracks/clojure/exercises/change/src/example.clj
trackler-2.2.1.178 tracks/clojure/exercises/change/src/example.clj
trackler-2.2.1.177 tracks/clojure/exercises/change/src/example.clj
trackler-2.2.1.176 tracks/clojure/exercises/change/src/example.clj
trackler-2.2.1.175 tracks/clojure/exercises/change/src/example.clj
trackler-2.2.1.174 tracks/clojure/exercises/change/src/example.clj
trackler-2.2.1.173 tracks/clojure/exercises/change/src/example.clj
trackler-2.2.1.172 tracks/clojure/exercises/change/src/example.clj
trackler-2.2.1.171 tracks/clojure/exercises/change/src/example.clj
trackler-2.2.1.170 tracks/clojure/exercises/change/src/example.clj
trackler-2.2.1.169 tracks/clojure/exercises/change/src/example.clj
trackler-2.2.1.167 tracks/clojure/exercises/change/src/example.clj
trackler-2.2.1.166 tracks/clojure/exercises/change/src/example.clj
trackler-2.2.1.165 tracks/clojure/exercises/change/src/example.clj
trackler-2.2.1.164 tracks/clojure/exercises/change/src/example.clj
trackler-2.2.1.163 tracks/clojure/exercises/change/src/example.clj
trackler-2.2.1.162 tracks/clojure/exercises/change/src/example.clj
trackler-2.2.1.161 tracks/clojure/exercises/change/src/example.clj
trackler-2.2.1.160 tracks/clojure/exercises/change/src/example.clj