형이 밥벌이에 바뻐서 까맣게 잊고 있다가 지금 제일 탑레벨 함수만 구현해 봄. 나머진 니가 해라
힌트: 니 생각을 코드로 그래도 표현해봐라
실행은 커녕 컴파일도 안해본거라 무슨 에러가 있을지 모르는게 함정
;; H -> even or odd = 1, 2
;; HH -> even number = 2
;; HT -> odd number = 1
;; -> No answer
;; HHH -> even or odd = 2 or 3
;; HHT -> even or odd = 1 or 2
;; -> 2
;; HHHH -> even = 2
;; HHHT -> odd = 1
;; HHTT -> even = 2
;; -> No answer
;; HHHHH -> even or odd = 2 or 5
;; HHHHT -> even or odd = 1 or 4
;; HHTTT -> even or odd = 2 or 3
;; -> 3
;; HHHHHH -> e = 2
;; HHHTTT -> o = 3
;; HHHHTT -> e = 2
;; HHHHHT -> o = 1
;; -> No answer
;; HHHHHHH -> e = 2
;; HHHHHHT -> e or o = 6 or 1
;; HHHHHTT -> e or o = 2 or 5
;; HHHHTTT -> e or o = 4 or 3
;; -> 6
(defn find-snoopy-number [n-coins]
(let [middle-point (/ n-coins 2)]
(loop [num-head n-coins num-tail 0 possible-answers #{} even-odd-set #{}]
(if (< head middle-point)
(pick-smaller-gcm possible-answers)
(let [partial-answers (get-partial-answers num-head num-tail)]
(if (conflict-even-odd-set? partial-answers even-odd-set)
:no-answer!
(recur (dec head)
(inc tail)
(clojure.set/union possible-answers partial-answers)
(->> possible-answers
(map #(if (even? %) :even :odd))
(clojure.set/union even-odd-set)))))))))
벌써 에러 하나 ㅋㅋ pick-smaller-gcm -> pick-smaller-gcd
허허 허참
허참, 더 있네 head -> num-head, tail -> num-tail ㅋㅋㅋ
이 분 손코딩 실패하신 분
http://dblack.tk
커뮤니티 사이트 입니다 많은 이용 부탁 드립니다.