관리 메뉴

개발하는 동그리

알고리즘 기법 [부분 배열 정렬] 본문

알고리즘/알고리즘 기법

알고리즘 기법 [부분 배열 정렬]

개발하는 동그리 2024. 12. 1. 00:42
반응형
기법
부분 배열 정렬

 

체감 난이도
실버 3

 

설명
ListA 의 startIdx부터 endIdx-1까지의 부분 배열을 정렬합니다.

Arrays.sort(ListA, startIdx, endIdx)

[ListA]
정렬하고자 하는 배열

[startIdx]
부분 배열의 시작 인덱스입니다.
해당 인덱스는 포함됩니다.

[endIdx]
부분 배열의 끝 인덱스입니다.
이 값은 포함되지 않으며, endIdx - 1이 실제로 정렬되는 마지막 인덱스입니다.

예를 들어, startIdx = 2, endIdx = 5이면, 인덱스 2, 3, 4의 값만 정렬됩니다.

 

장점
기존 배열의 변경: Arrays.sort는 배열을 직접 변경하는 방법입니다.
즉, 배열을 새로 반환하는 것이 아니라, 기존 배열에서 지정된 범위만 정렬하여 결과를 제공합니다.이 방식은 추가적인 메모리 할당 없이 원본 배열을 수정하므로 메모리 효율적입니다.

 

코드
import java.util.Arrays;

public class Main {
    public static void main(String[] args) {
        int[] ListA = {5, 2, 3, 8, 7, 1, 6};

        // 부분 배열을 정렬하고 싶은 인덱스 범위
        int startIdx = 2;  // 시작 인덱스
        int endIdx = 5;    // 끝 인덱스 (끝 인덱스는 포함되지 않음)

        // 부분 배열 정렬
        Arrays.sort(ListA, startIdx, endIdx);

        // 결과 출력
        System.out.println(Arrays.toString(ListA));  // [5, 2, 1, 3, 7, 8, 6]
    }
}

 

알고리즘 기법을 이용한 문제 풀이 
https://www.acmicpc.net/problem/11582

 

 

반응형