생성일: 2019년 12월 13일
수정일: 2023년 08월 09일

4clojure - Recurring Theme (68)

  1. 문제
  2. 풀이

문제

(= __
  (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]
Tags: 4clojure Today I Learn