셋 (Set)
CS/자료구조
배열 [1, 2, 3, 2, 4, 1, 5]에서 중복을 제거하고 싶다고 생각해보자.일일이 확인하며 중복을 찾는 것보다, 중복을 자동으로 허용하지 않는 자료구조가 있다면 훨씬 편리할 것이다.이것이 바로 셋(Set)의 핵심 개념이다. SetSet은 데이터의 중복을 허용하지 않는 자료구조이다. 내부적으로는 일반적으로 해시 테이블을 기반으로 구현되며, 각 요소는 key만 존재하고 value가 없는 형태로 저장된다.이 때문에 **해시 셋(HashSet)**이라고도 부르며, 요소 자체가 key의 역할을 수행한다.Set vs Hash Table Hash TableSet저장 형태key-value 쌍key만 (value 없음)중복 허용key 중복 불가요소 중복 불가주 용도데이터 매핑중복 제거, 존재 여부 확인예시{ 1:..
해시 테이블 (Hash Table)
CS/자료구조
전화번호부에서 이름으로 전화번호를 찾는다고 생각해보자. 전화번호부가 정렬되지 않았다면 처음부터 끝까지 찾아야 하지만, 이름을 특정 규칙으로 변환해서 바로 위치를 찾을 수 있다면 훨씬 빠를 것이다. 이것이 바로 해시 테이블(Hash Table)의 핵심 개념이다. 해시 테이블해시 테이블은 해시 함수와 테이블(배열)이 합쳐진 자료구조이다.키(Key)를 해시 함수로 변환하여 인덱스를 얻고, 그 위치에 값(Value)을 저장한다. 이를 통해 데이터의 저장과 검색을 매우 빠르게 수행할 수 있다.해시 테이블의 핵심 개념 설명키 (Key)데이터를 식별하는 고유한 값 (예: 1, 21)값 (Value)실제로 저장할 데이터 (예: "이운재", "박지성")해시 함수키를 인덱스로 변환하는 함수 (예: key % 10)버킷 ..