programmers.co.kr/learn/courses/30/lessons/42748
int[] array, int[][] commands가 주어진다.
commands 의 각 행에는 명령을 위한 3개의 int가 들어있다.
[begin, end, K]
명령에 대한 답은 array에서 [begin번째 ~ end번째]만큼을 잘라내고 그 중 K번째로 큰 값이다.
(단, begin, end는 인덱스를 나타내지 않는다. 1부터 시작하는 순서를 나타낼 뿐이다.)
commands 의 각 명령들에 대한 답을 담은 배열을 반환해야한다.
풀이 .
import java.util.*;
class Solution {
public int[] solution(int[] array, int[][] commands) {
int[] answer = new int[commands.length];
int ansIdx = 0;
for(int[] command : commands) {
int begin = command[0];
int end = command[1];
int k = command[2];
int[] temp = new int[end - begin + 1];
int idx = 0;
for(int i = begin - 1; i <= end - 1; i++) { // 인덱스와 순서 혼동 주의
temp[idx++] = array[i];
}
Arrays.sort(temp);
answer[ansIdx++] = temp[k - 1];
}
return answer;
}
}
문제에서 시키는 그대로 따라하면 된다.
'알고리즘 문제 > 프로그래머스' 카테고리의 다른 글
[PG] 모의고사 JAVA (0) | 2021.01.01 |
---|---|
[PG] 가장 큰 수 JAVA (0) | 2020.12.31 |
[PG] 이중 우선순위 큐 JAVA (0) | 2020.12.31 |
[PG] 디스크 컨트롤러 JAVA (0) | 2020.12.31 |
[PG] 더 맵게 JAVA (0) | 2020.12.31 |