생성일: 2019년 11월 05일
수정일: 2023년 10월 26일

4clojure - Replicate a Sequence (33)

  1. 문제
  2. 풀이

문제

(= (__ [1 2 3] 2) '(1 1 2 2 3 3))

(= (__ [:a :b] 4) '(:a :a :a :a :b :b :b :b))

(= (__ [4 5 6] 1) '(4 5 6))

(= (__ [[1 2] [3 4]] 2) '([1 2] [1 2] [3 4] [3 4]))

(= (__ [44 33] 2) [44 44 33 33])

풀이

(fn [x y] (mapcat #(repeat y %) x))

(fn [x y] (mapcat #(take y (iterate identity %)) x))

collection 안의 값을 파라미터 값 만큼 반복해서 출력을 하는 문제이다. 값의 반복을 반복문을 이용해서 할 수도 있겠지만 같은 값을 원하는 갯수 만큼 생성해주는 repeat를 이용해서 하는 방법도 있다 32번 문제와 같은 mapcat을 이용 했는데 map + apply + concat을 이용해서도 역시 해결 가능 하다.

Tags: 4clojure Today I Learn