[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를 사용하여 홀수와 짝수를 구분하고, 오름차순 또는 내림차순으로 정렬합니다. 최종적으로 정렬된 배열을 반환하는 방법을 보여줍니다.

위의 예시는 정렬 알고리즘을 활용하여 실제 문제를 해결하는 방법을 보여주는 것으로, 정렬 알고리즘의 중요성과 유용성을 잘 보여줍니다.

참고 자료

위의 예시를 통해 정렬 알고리즘이 실제 문제를 해결하는 데 어떻게 활용될 수 있는지에 대해 설명했습니다.