Skip to content

Instantly share code, notes, and snippets.

@visibletrap
Created November 7, 2016 16:37
Show Gist options
  • Save visibletrap/6b1af8076ab1a02837b8d5799a8d55a8 to your computer and use it in GitHub Desktop.
Save visibletrap/6b1af8076ab1a02837b8d5799a8d55a8 to your computer and use it in GitHub Desktop.
(ns hackerrank.sequence-full-of-colors.core)
(defn count-color [codes color]
(->> codes
(filter #(= color %))
(count)))
(defn eq [codes & colors]
(->> colors
(map #(count-color codes %))
(apply =)))
(defn prefix-diff [check-fn codes colors]
(->> colors
(map #(count-color codes %))
(apply -)
(Math/abs)
(check-fn)))
(defn diff<=? [limit codes & colors]
(->> codes
(reduce (fn [[result current] code]
(if (prefix-diff #(<= % limit) current colors)
[result (conj current code)]
(reduced [false])))
[true []])
(first)))
(defn full-of-colors? [codes]
(and (eq codes \R \G)
(eq codes \Y \B)
(diff<=? 1 codes \R \G)
(diff<=? 1 codes \Y \B)))
(comment
(map full-of-colors? ["RGGR" "RYBG" "RYRB" "YGYGRBRB"]))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment