2차원 배열이 갑자기 나와서 순간 당황했지만 침착하게… 풀어보았다.
근데 아이패드 키보드에는 왜 마크다운 코드 블록 쓰는 기호가 없는거야…
import java.util.*;
class Solution {
public int[] solution(int[] array, int[][] commands) {
int[] answer = {};
List<Integer> answerList = new ArrayList<>();
for (int[] command : commands) {
int[] tempArr = Arrays.copyOfRange(array, command[0]-1, command[1]);
Arrays.sort(tempArr);
answerList.add(tempArr[command[2]-1]);
}
answer = answerList.stream().mapToInt(i->i).toArray();
return answer;
}
}
Arrays.copyOfRange([배열명], [시작 인덱스], [종료 인덱스+1])
를 이용해 배열을 복사해둔 뒤,
Arrays.sorts()
를 이용해 정렬했다.
배열 크기를 매번 다시 설정해 값을 추가하는 것보다 List.add()
후 배열 형태로 바꾸는 게 효율적이라고 한다.
answerList.stream().mapToInt(i->i).toArray();
를 작성하여 List에 담았던 결과값을 배열로 반환했다.
String 형태였다면 아래처럼 작성해도 된다.
answer = new int[answerList.size()];
answerList.toArray(answer);