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