
알고리즘 시험에서 자주 사용하는 Set 자료구조에 대해 정리해보려 한다
// javascript 사용 예시
const set = new Set();
// 원소 추가
set.add(1);
set.add(2);
set.add(2); // 중복 추가 시 무시됨
// 원소 존재 확인
console.log(set.has(1)); // true
// 원소 삭제
set.delete(2);
// 크기 확인
console.log(set.size); // 1
// 모든 원소 순회
for (const item of set) {
console.log(item);
}
# python 사용 예시
s = set()
# 원소 추가
s.add(1)
s.add(2)
s.add(2) # 중복 무시
# 원소 존재 확인
print(1 in s) # True
# 원소 삭제
s.remove(2)
# 크기 확인
print(len(s)) # 1
# 모든 원소 순회
for item in s:
print(item)

추가(add): O(1)
삭제(delete/remove): O(1)
탐색(has/in): O(1)
이는 내부적으로 해시 테이블을 사용하기 때문이다. 따라서 대량의 데이터에서 중복 제거나 존재 여부 확인을 빠르게 할 수 있다.
마무리
Set 자료구조는 알고리즘 시험에서 중복 처리, 집합 연산, 빠른 탐색이 필요할 때 매우 유용하다. JavaScript와 Python 모두 기본 제공하므로, 문법과 메서드를 익혀두면 실전에서 큰 도움이 된다. 다음에는 Set을 활용한 대표적인 알고리즘 문제 풀이를 다루겠다.