셋 SET
- 데이터를 저장하는 추상자료형 (ADT)
- 순서를 보장하지 않음
- 데이터 중복을 허용하지 않음
- 데이터 조회(search)가 List보다 빠름
명령 (밑에서 아래로) | 판단 | 결과 |
add(10) | 성공 | 10 |
add(20) | 성공 | 10 20 |
add(30) | 성공 | 10 20 30 |
add(10) | 무시 : 이미 10이 존재하기 때문에 중복 X | 10 20 30 |
contains(40) | false : 40이 없기 때문에 | 10 20 30 |
contains(10) | true : 10이 있기 때문에 | 10 20 30 |
remove(10) | 성공 | 20 30 |
셋은 언제 사용할까?
1. 중복된 데이터를 제거해야할 때
ex) 스타트업 하면 떠오르는 단어를 여러 사람들에게 물어봤을 때 중복된 단어가 나올 수 있다.
2. 데이터의 존재 여부를 확인해야 할 때
용인시에서 '청년 전세자금대출 이자지원 사업' 공고
* 경기도에서 진행한 동일한 사업에 선정된 경우, 지원 대상에서 제외
경기도 사업 수혜자의 주민번호를 비교해서 확인한다.
데이터 조회가 리스트보다 빠르기 때문에 리스트로 저장해서 비교하는 것보다 셋으로 진행하는 것이 좋다.
Set 구현체
- hash set
- linked hash set (java)
- tree set (java)
728x90
'Algorithm > 알고리즘 스터디' 카테고리의 다른 글
스택 Stack & 큐 Queue (1) | 2025.01.20 |
---|---|
인터페이스 맵 MAP (1) | 2025.01.20 |
배열 Array 와 리스트 List (0) | 2025.01.20 |
디버깅 (0) | 2025.01.20 |
시간 복잡도 (0) | 2025.01.14 |