[java] 정렬 알고리즘에서의 중복 원소 처리 방법
원소가 중복되는 경우, 정렬 알고리즘을 적용할 때 중복된 원소를 어떻게 처리할지에 대한 중요한 고려 사항이 있습니다. 일반적으로 중복된 원소를 어떻게 처리할지는 사용 사례에 따라 다를 수 있습니다. 여기에는 몇 가지 일반적인 접근 방법이 있습니다.
1. 중복된 원소를 모두 유지
일부 경우에는 원래 순서를 유지하면서 중복된 항목을 모두 포함하는 것이 중요할 수 있습니다. 안정적인 정렬 알고리즘을 사용하거나 추가적인 데이터 구조를 활용하여 중복된 항목을 유지할 수 있습니다.
import java.util.Arrays;
public class Main {
public static void main(String[] args) {
int[] arr = {4, 2, 7, 3, 4, 7, 8, 4};
Arrays.sort(arr);
System.out.println(Arrays.toString(arr));
}
}
2. 중복된 원소 제거
다른 경우에는 중복된 원소를 제거하는 것이 적합할 수 있습니다. 이를 위해 Set 또는 Map을 사용하여 중복을 제거한 후 정렬할 수 있습니다.
import java.util.Arrays;
import java.util.HashSet;
import java.util.Set;
public class Main {
public static void main(String[] args) {
int[] arr = {4, 2, 7, 3, 4, 7, 8, 4};
Set<Integer> set = new HashSet<>();
for (int num : arr) {
set.add(num);
}
int[] uniqueArr = set.stream().mapToInt(Integer::intValue).toArray();
Arrays.sort(uniqueArr);
System.out.println(Arrays.toString(uniqueArr));
}
}
결론
중복된 원소를 다루는 방법은 사용 사례 및 요구 사항에 따라 다를 수 있습니다. 각각의 접근 방법은 해당 상황에 맞게 선택되어야 합니다.