📚

Remove Duplicates

Remove Duplicates - Explanation

쉬움 배열 O(n) O(n)

Problem Summary

Write a function that removes duplicate values from an array.

Go to Problem →

Detailed Explanation

이 문제는 **Set 자료구조**를 활용하여 배열에서 중복을 제거하는 방법을 학습합니다. **Set이란?** Set은 중복을 허용하지 않는 값들의 집합입니다. 같은 값을 여러 번 추가해도 하나만 저장됩니다. **Set으로 중복 제거하기** 1. `new Set(arr)` - 배열로 Set 생성 (중복 자동 제거) 2. `[...set]` - Set을 다시 배열로 변환 **[1, 2, 2, 3, 3, 3] 처리 과정** - new Set([1, 2, 2, 3, 3, 3]) → Set {1, 2, 3} - [...Set {1, 2, 3}] → [1, 2, 3] **순서 보존** Set은 삽입 순서를 유지합니다. 따라서 원래 배열에서 각 값이 처음 등장한 순서대로 결과가 나옵니다. **filter로 구현하기** ```javascript function removeDuplicates(arr) { return arr.filter((item, index) => arr.indexOf(item) === index); } ``` 이 방법은 각 요소가 처음 등장하는 위치와 현재 위치가 같은 경우만 유지합니다. **주의: 객체 중복** Set은 원시값(숫자, 문자열)의 중복은 제거하지만, 객체는 참조로 비교하므로 내용이 같아도 다른 객체로 취급됩니다.

Solution Code

solution.js
function removeDuplicates(arr) {
  return [...new Set(arr)];
}

Key Concepts from This Problem

1. Set 자료구조
2. 중복 제거 패턴
3. 스프레드 연산자
4. 삽입 순서 보존

Common Mistakes

Set은 객체의 내용이 아닌 참조를 비교합니다
Array.from(set)도 [...set]과 같은 결과를 줍니다
Set을 직접 반환하면 배열이 아닌 Set 객체가 반환됩니다

Hints

Hint 1: Set을 사용하면 간단합니다.
Hint 2: 스프레드 연산자로 배열로 변환하세요.

Complexity Analysis

Time Complexity

O(n)

Grows linearly with input size

Space Complexity

O(n)

Uses memory proportional to input size

Related Tags

#배열 #Set #중복제거