정렬 - 코테 문제 풀면서 필요한 것만

드코미·2025년 8월 12일

1. Arrays.sort()

Arrays.sort() 메서드는 크게 두 가지 형태로 사용되는데, 전체 배열을 정렬하는 경우와 배열의 특정 부분만 정렬하는 경우로 나눌 수 있습니다.

  • 가능한 타입
    • 기본 타입
      • int/long/short/char/byte/float/double과 같은
    • 객체 타입
  • Arrays.sort()를 사용하면 원본 배열이 바뀝니다.

1-1. 전체 정렬

1-1-1. 오름차순 (기본 타입)

import java.util.Arrays;

int[] a = {5, 2, 9, 1, 3};
Arrays.sort(a);
System.out.println(Arrays.toString(a)); // 결과: [1, 2, 3, 5, 9]

1-1-2. 내림차순

✅ 방법A) 객체 배열(Integer[]) + Comparator.reverseOrder()

import java.util.Arrays;
import java.util.Comparator;

Integer[] b = {5, 2, 9, 1, 3};
Arrays.sort(b, Comparator.reverseOrder());
System.out.println(Arrays.toString(b)); // 결과: [9, 5, 3, 2, 1]

✅ 방법B) 기본 타입(int[])

(1) 전체 배열 정렬: Arrays.sort(arr)

✅ 오름차순

import java.util.Arrays;

public class SortExample {
    public static void main(String[] args) {
        int[] numbers = {5, 2, 8, 1, 9};

        // Arrays.sort()를 사용하여 배열 전체 정렬
        Arrays.sort(numbers); 

        System.out.println("정렬된 배열: " + Arrays.toString(numbers));
    }
}
정렬된 배열: [1, 2, 5, 8, 9]

✅ 내림차순

import java.util.Arrays;
import java.util.Comparator;

public class Ex5 {
    public static void main(String[] args) {
        Integer[] x = {3, 1, 2};
        Arrays.sort(x, Comparator.reverseOrder()); // 내림차순
        System.out.println(Arrays.toString(x)); // [3, 2, 1]
    }
}

(2) 특정 부분 배열 정렬: Arrays.sort(arr, fromIndex, toIndex)

배열 arr의 fromIndex 부터 toIndex 직전까지의 요소들만 정렬합니다. 즉, fromIndex 이상 ~ toIndex 미만

✅ 오름차순

import java.util.Arrays;

public class SortPartialExample {
    public static void main(String[] args) {
        int[] numbers = {5, 2, 8, 1, 9, 3, 7};

        // 인덱스 2부터 5까지 (8, 1, 9) 부분만 정렬
        // (toIndex는 포함하지 않으므로 인덱스 2, 3, 4만 정렬됨)
        Arrays.sort(numbers, 2, 5); 

        System.out.println("부분 정렬된 배열: " + Arrays.toString(numbers));
    }
}
부분 정렬된 배열: [5, 2, 1, 8, 9, 3, 7]

✅ 내림차순

profile
할 수 있다!!!

0개의 댓글