본문 바로가기
목차훔치기/면접을 위한 CS 전공지식 노트

셋(Set)(면접을 위한 CS 전공지식 노트)

by 해삼2 2023. 11. 3.
728x90
반응형

 

셋(Set)

 

셋(Set)

셋(Set)은 비선별형 자료구조로, 컴퓨터 과학 및 프로그래밍에서 중복되지 않는 값을 저장하는 데 

사용됩니다. 

셋은 주로 집합 이론에서 영감을 받아 만들어진 자료구조로, 

집합 개념과 유사하게 각 요소는 중복되지 않으며 순서가 없습니다. 

이러한 특성 때문에 셋은 고유한 값들의 모음을 저장하거나 중복을 제거할 때 유용하게 활용됩니다.

 

셋의 주요 특징

 

중복 요소가 없음: 

셋은 중복된 요소를 허용하지 않습니다. 

만약 동일한 요소를 여러 번 추가하더라도 그 값은 하나만 유지됩니다.

순서가 없음: 

셋은 요소들을 어떤 순서로 저장하는지에 대한 보장이 없습니다. 

따라서 요소를 삽입한 순서대로 접근할 수 없으며, 정렬되지 않은 상태로 보관됩니다.

셋은 다양한 프로그래밍 언어에서 지원되며, 

각 언어마다 조금씩 다를 수 있지만 일반적으로 다음과 같은 기본적인 작업을 수행할 수 있습니다:

요소 추가: 셋에 새로운 요소를 추가할 수 있습니다.
요소 삭제: 특정 요소를 삭제할 수 있습니다.
요소 검색: 셋에 특정 요소가 존재하는지 확인할 수 있습니다.
크기 확인: 셋에 저장된 요소의 개수를 확인할 수 있습니다.
집합 연산: 합집합, 교집합, 차집합 등과 같은 집합 연산을 수행할 수 있습니다.


셋은 데이터를 중복 없이 저장하거나 중복을 제거하려는 경우에 유용하며, 데이터베이스, 

데이터 처리, 알고리즘, 그래프 이론, 통계 등 다양한 컴퓨터 과학 및 프로그래밍 응용 분야에서 활용됩니다.

 

셋의 종류

 

집합(Set)
언제 사용: 

중복을 허용하지 않는 고유한 값의 집합을 유지하고자 할 때 사용합니다.


설명: 

많은 프로그래밍 언어에서 "집합(Set)" 또는 유사한 이름으로 제공됩니다. 

이러한 집합은 중복된 요소를 자동으로 걸러내며, 추가된 순서를 보장하지 않습니다. 

주로 고유한 값들을 저장하거나 중복을 제거하는 데 사용됩니다.


해시셋(HashSet):
언제 사용: 

검색 속도가 중요한 경우에 사용합니다.


설명: 

해시셋은 해시 함수를 사용하여 요소를 저장하므로 검색 속도가 매우 빠릅니다. 

중복을 허용하지 않으며, 요소 순서를 보장하지 않습니다. 

주로 데이터베이스 인덱싱, 검색, 고유한 값의 관리에 사용됩니다.


링크드셋(LinkedHashSet):
언제 사용: 

순서가 중요하면서 중복을 제거해야 할 때 사용합니다.


설명: 

링크드셋은 중복을 허용하지 않고, 요소를 삽입된 순서대로 유지합니다. 

이는 요소의 순서가 중요한 경우에 유용합니다.


트리셋(TreeSet):

언제 사용: 

정렬된 순서로 요소를 저장하고자 할 때 사용합니다.


설명: 

트리셋은 이진 검색 트리 구조를 사용하여 요소를 저장하며, 저장된 요소는 정렬된 순서로 유지됩니다. 

중복을 허용하지 않습니다. 주로 정렬된 데이터를 관리하고 검색하는 데 사용됩니다.


불변셋(Immutable Set):
언제 사용: 변경이 불가능한(immutable) 요소를 관리하고자 할 때 사용합니다.


설명: 

불변셋은 요소를 한 번 설정하면 변경할 수 없는(set) 자료구조입니다. 

이는 데이터의 무결성을 유지하고 병렬 처리 환경에서 안전한 자료구조를 만들 때 사용됩니다.
셋의 종류는 프로그래밍 언어나 라이브러리에 따라 다를 수 있으며, 

상황과 요구사항에 따라 어떤 종류의 셋을 선택하는 것이 중요합니다. 

주어진 문제나 작업에 맞게 가장 적절한 셋을 선택하여 중복을 제거하거나 

고유한 값들을 효과적으로 관리할 수 있습니다.

728x90
반응형