생성일: 2019년 12월 13일
수정일: 2023년 08월 09일
수정일: 2023년 08월 09일
4clojure - Recurring Theme (68)
문제
(= __
(loop [x 5
result []]
(if (> x 0)
(recur (dec x) (conj result (+ 2 x)))
result)))
풀이
[7 6 5 4 3]
recursive 문제 이다 다른 부분 보다는 recur 이 부분을 분석 할 수 있으면 문제는 쉽게 해결 가능 하다.
우선은 x = 5 값이고 result = []로 시작을 하게 되고, 반복을 하게 되면 아래와 같아진다.
(conj [] 7)
(conj (conj [] 7) 6)
(conj (conj (conj [] 7) 6) 5)
(conj (conj (conj (conj [] 7) 6) 5) 4)
(conj (conj (conj (conj (conj [] 7) 6) 5) 4) 3)
(conj (conj (conj (conj [7] 6) 5) 4) 3)
(conj (conj (conj [7 6] 5) 4) 3)
(conj (conj [7 6 5] 4) 3)
(conj [7 6 5 4] 3)
[7 6 5 4 3]