https://school.programmers.co.kr/learn/courses/30/lessons/42748

import java.util.*;
class Solution {
public int[] solution(int[] array, int[][] commands) {
int commandLength = commands.length;
int[] answer = new int[commandLength];
for (int a = 0; a < commandLength; a++) {
int i = commands[a][0];
int j = commands[a][1];
int k = commands[a][2];
int n = slice(array,i,j,k);
answer[a] = n;
}
return answer;
}
public int slice(int[] array, int i, int j, int k) {
int result=0;
int[] copyArr = Arrays.copyOfRange(array,i-1,j);
Arrays.sort(copyArr);
for (int b : copyArr) {
result = copyArr[k-1];
}
return result;
}
}
int[] 배열 복사할 때는 Arrays.copyOfRange사용
정렬할떄는 Arrays.sort사용한다.
역은
Integer[] tmp = Arrays.stream(intArray).boxed().toArray(Integer[]::new);
Arrays.sort(tmp, Comparator.reverseOrder());
Integer로 감싸야 한다.
Integer를 int로 바꾸는 방법
int[] arr = {1, 2, 3, 4};
Integer[] boxed = new Integer[arr.length];
for (int i = 0; i < arr.length; i++) {
boxed[i] = arr[i]; // 자동으로 int → Integer
}
반대도 된다. 혹은
int[] arr = {1, 2, 3, 4};
Integer[] boxed = Arrays.stream(arr)
.boxed()
.toArray(Integer[]::new);