차곡차곡 성 쌓기
article thumbnail

1.  🍎 문제

 

 

 

2. 🤔 접근

구현해야 되는 작업은 다음 3가지이다. 또한 주어진 인덱스는 1부터 시작하는 것에 주의한다.

1. 배열을 i부터 j까지 자른다.
2. 자른 배열을 정렬한다.
3. k번째 요소를 answer 배열에 추가한다.

 

 

3. 💡 구현

1. 배열 자르기

| Arrays.copyOfRange ( 원본 배열, 시작인덱스(inclusive), 끝 인덱스(exclusive) )

copyOfRange 함수를 사용하면 원하는 인덱스만큼 배열을 카피할 수 있다.

// 배열 자르기
int [] sliceArray = Arrays.copyOfRange(array, commands[t][0]-1, commands[t][1]);

 

 

2. 정렬

| Arrays.sort() 

sort 함수를 사용하면 오름차순 정렬을 할 수 있다. 내리차순 정렬 같은 다른 기준의 정렬을 사용하고 싶은 경우 Comprator 또는 Comparble을 구현하면 된다.

// 오름차순 정렬
Arrays.sort(sliceArray);

 

 

3. k번째 요소 추가

	int[] answer = new int[commands.length];

        for(int t= 0; t< commands.length; t++){
           // ... 생략
            answer[t] = (sliceArray[commands[t][2]-1]);
        }

 

 

 

 

4.  전체 코드

import java.util.*;
class Solution {
    public int[] solution(int[] array, int[][] commands) {
        int[] answer = new int[commands.length];

        for(int t= 0; t< commands.length; t++){
            // 배열 자르기
            int [] sliceArray = Arrays.copyOfRange(array, commands[t][0]-1, commands[t][1]);
            // 오름차순 정렬
            Arrays.sort(sliceArray);
            answer[t] = (sliceArray[commands[t][2]-1]);
        }
        return answer;
    }
}
profile

차곡차곡 성 쌓기

@nagrang

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!