[java] 정렬 알고리즘이 적용된 실제 문제 예시
정렬 알고리즘은 프로그래밍에서 매우 중요한 주제 중 하나입니다. 특히 정렬 알고리즘을 적용하여 다양한 문제를 해결할 수 있습니다. 아래에는 자바로 작성된 실제 문제를 해결하는데 정렬 알고리즘이 적용된 예시를 제시하겠습니다.
문제 내용
주어진 배열에 포함된 숫자들 중에서 홀수는 오름차순으로, 짝수는 내림차순으로 정렬하여 반환하는 함수를 작성하시오.
해결 방법
import java.util.Arrays;
import java.util.Comparator;
public class SortExample {
public static void main(String[] args) {
int[] arr = {3, 5, 2, 8, 1, 7, 9, 4};
int[] sortedArr = customSort(arr);
System.out.println(Arrays.toString(sortedArr));
}
public static int[] customSort(int[] arr) {
Integer[] boxedArr = Arrays.stream(arr).boxed().toArray(Integer[]::new);
Arrays.sort(boxedArr, Comparator.comparingInt(i -> i % 2 == 0 ? i * -1 : i));
return Arrays.stream(boxedArr).mapToInt(Integer::intValue).toArray();
}
}
위의 예시 코드는 customSort
함수를 통해 주어진 배열을 정렬합니다. Comparator.comparingInt
를 사용하여 홀수와 짝수를 구분하고, 오름차순 또는 내림차순으로 정렬합니다. 최종적으로 정렬된 배열을 반환하는 방법을 보여줍니다.
위의 예시는 정렬 알고리즘을 활용하여 실제 문제를 해결하는 방법을 보여주는 것으로, 정렬 알고리즘의 중요성과 유용성을 잘 보여줍니다.
참고 자료
- Oracle Java Documentation: Arrays
- Baeldung: Java Array Sorting
위의 예시를 통해 정렬 알고리즘이 실제 문제를 해결하는 데 어떻게 활용될 수 있는지에 대해 설명했습니다.