알고리즘/프로그래머스
[프로그래머스] K번째수_JAVA
jimkwon
2022. 2. 22. 13:43
반응형
문제 링크
https://programmers.co.kr/learn/courses/30/lessons/42748
command 배열에는 [자를 array범위 시작, 범위 끝, K번째 수]가 들어있다.
따라서 array를 범위에 맞게 자르고, 해당 범위 내에서 K번째 수를 찾으면 되는 아주 단순한 로직
단, 코드를 좀 더 깔끔하고 효율적으로 짜길 원한다면
array를 새로 선언하고, 범위에 맞게 일일히 집어넣는 방식 보다는
copyOfRange라이브러리를 추천한다.
Arrays.copyOfRange(복사할 array, 시작 index, 끝 index + 1)
// commands [a.b.c]에 따라 a~b까지 배열에 넣고, 정렬한 후 c번째를 뽑아 답에 넣는다.
import java.util.Arrays;
class Solution {
public int[] solution(int[] array, int[][] commands) {
int[] answer = new int[commands.length];
for (int i = 0; i < commands.length; i++) {
int[] temp = Arrays.copyOfRange(array, commands[i][0] - 1, commands[i][1]);
Arrays.sort(temp);
answer[i] = temp[commands[i][2] - 1];
}
return answer;
}
}