집합(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)에 관심이 많고,
이것저것 생각나는 것들을 글로 정리하는 것을 좋아합니다.
기술로 사회문제를 해결하는 시빅해킹(Civic Hacking)에 관심이 많고,
이것저것 생각나는 것들을 글로 정리하는 것을 좋아합니다.
'자료구조/알고리즘' 시리즈의 다른 이야기들