반응형
-첫 풀이 및 정답풀이
이 문제 역시 체육복 문제와 비슷하게 그냥 문제에서 주어지는 조건만 잘 지켜준다면, 쉽게 풀 수 있는 문제였다. 그러나 필자의 풀이와 다르게 Arrays.copyOfRange() 메서드를 활용해 더욱 짧게 푼 사람들의 풀이 역시 존재하니까 많이 참고하는 게 좋을 것 같다.
(다른 사람의 풀이이므로 블로그에 직접 게시하지 않으니 문제에서 제공되는 링크에서 확인 바란다.)
import java.util.ArrayList;
import java.util.Arrays;
class Solution {
public ArrayList<Integer> solution(int[] array, int[][] commands) {
// 1. 정답을 담아 반환할 ArrayList.
ArrayList<Integer> answer = new ArrayList<>();
// 2. 특정 범위의 원소들을 저장할 배열 객체.
int temp[];
// 3. 명령어의 수 만큼 반복.
for(int i = 0;i<commands.length;i++){
// 3-1. 특정 범위의 원소들을 저장할 배열의 인덱스.
int idx = 0;
// 3-2. x번째부터 y번째 까지 원소 수의 크기 배열 생성.
temp = new int[(commands[i][1] - commands[i][0])+1];
// 3-3. array배열로부터 원소들을 저장.
for(int j = (commands[i][0]-1); j<commands[i][1];j++){
temp[idx] = array[j];
idx++;
}
// 3-4. 저장된 배열을 정렬.
Arrays.sort(temp);
// 3-5. 정렬된 배열로부터 특정 원소를 ArrayList에 삽입.
answer.add(temp[commands[i][2]-1]);
}
return answer;
}
}
반응형