집합(Set)이란 무엇인가

2020.03.10

메인

집합(Set)이란?

집합이란 반복되지 않는(유일한) 값들로 구성된 자료구조이다.

학창시절 수학책 첫 장으로 나오곤 했던 (그래서 수포자라 할지라도 이건 알고 있는..) 그 집합의 개념을 자료구조에 적용한 것이다.

집합에는 정렬의 개념이 없다. 따라서 요소의 순서는 의미가 없다

집합의 각 값들은 유일한 값들이므로, 집합에 이미 포함된 요소를 추가했을때도 중복되어 추가되지 않는다.

인터페이스

  • add(element) - 요소를 추가한다.
  • has(element) - 집합에 요소가 있는 지 확인한다.
  • values() - 집합에 있는 모든 값들을 반환한다.
  • delete(element) - 요소를 삭제한다.
  • clear() - 집합의 모든 요소를 삭제한다.
  • size() - 집합에 있는 값의 개수를 반환한다.

구현 - JavaScript에서의 집합

JavaScript에서는 ES6부터 Set객체를 제공하므로, 이것을 이용하면 된다.

const set = new Set();

set.add("배");
set.add("사과");

set.has("사과"); // -> true

set.values(); // -> {"배", "사과"}

set.delete("배");
set.has("배"); // -> false

확장 - 딕셔너리 Dictionary [맵 Map, 연관 배열 Associative Array]

집합(Set)을 KEY-VALUE 구조로 확장한 자료구조이다.
상세 설명은 딕셔너리 Dictionary 페이지에 정리했다.

  • 아디트야 바르가바, 『Hello Coding 그림으로 개념을 이해하는 알고리즘』, 김도형, 한빛미디어(2017)
  • 스기우라 켄, 『그림으로 배우는 알고리즘』, 서재원, 영진(2016)
  • 이소 히로시, 『모던 자바스크립트 입문』, 서재원, 길벗(2018)
  • Martin Erwig, 『그들은 알고리즘을 알았을까?』, 송원형, 영진(2017)
  • Loiane Groner, 『자바스크립트 자료 구조와 알고리즘』, 이일웅, PACKT-에이콘(2015)
글쓴이쿠스, Qus
직업은 소프트웨어 개발자.
기술로 사회문제를 해결하는 시빅해킹(Civic Hacking)에 관심이 많고,
이것저것 생각나는 것들을 글로 정리하는 것을 좋아합니다.