DEV Community

Discussion on: 6-10PM challenge problem #001

Collapse
 
larisho profile image
Gab

O(n) Clojure solution:

(defn move-zeros [arr]
  (loop [lst arr 
         nonzeros []
         zeros []]
    (cond
      (empty? lst) (concat nonzeros zeros)
      (= (first lst) 0) (recur (rest lst) nonzeros (conj zeros 0))
      :else (recur (rest lst) (conj nonzeros (first lst)) zeros))))

(move-zeros [12 3 0 2 8 11 0 0 6 4 0 5 7 0 8 9 0])
;; (12 3 2 8 11 6 4 5 7 8 9 0 0 0 0 0 0)