생성일: 2020년 01월 04일
수정일: 2023년 08월 25일

4clojure - Symmetric Difference (88)

  1. 문제
  2. 풀이

문제

(= (__ #{1 2 3 4 5 6} #{1 3 5 7}) #{2 4 6 7})

(= (__ #{:a :b :c} #{}) #{:a :b :c})

(= (__ #{} #{4 5 6}) #{4 5 6})

(= (__ #{[1 2] [2 3]} #{[2 3] [3 4]}) #{[1 2] [3 4]})

풀이

(fn symdiff [set1 set2]
  (set (concat (apply disj set1 set2) (apply disj set2 set1))))

disj라는 함수가 있는데 이것은 conj와 다르게 내부에 있는 값을 제거 하는 함수이다. 그 사용법을 응용을 한 것이고, 해당 collection의 값을 제거하는 것도 가능하다.

Tags: 4clojure Today I Learn