반응형
프로그래머스 K번째수 - JAVA
문제 설명
- 배열 array의 i번째 숫자부터 j번째 숫자까지 자르고 정렬했을 떄, k번째에 있는 수를 구하려 한다.
- 배열 array, [i, j, k]를 원소로 가진 2차원 배열 commands가 매개변수로 주어진다.
- commands의 모든 원소에 대해 앞서 설명한 연산을 적용했을때 나온 결과를 배열에 담어 return.
제한 사항
- array의 길이는 1 이상 100 이하입니다.
- array의 각 원소는 1 이상 100 이하입니다.
- commands의 길이는 1 이상 50 이하입니다.
- commands의 각 원소는 길이가 3입니다.
문제 풀이
- commands 배열 길이와 나온 결과 길이가 같음으로 commands 배열 길이만큼 answer 배열 생성.
- commands 배열을 순화하며 i에서 j번째까지 수를 temp 배열에 복사하여 저장.
- Arrays.copyOfRange() 함수를 사용하면 쉽게 범위를 지정하여 복사 할 수 있음.
- temp 배열을 정렬하고 k번째 수를 answer에 저장.
소스 코드
import java.util.*;
class Solution {
public int[] solution(int[] array, int[][] commands) {
int[] answer = new int[commands.length];
int index = 0;
for (int[] command : commands) {
int i = command[0];
int j = command[1];
int k = command[2];
int[] temp = Arrays.copyOfRange(array, i - 1, j);
Arrays.sort(temp);
answer[index++] = temp[k - 1];
}
return answer;
}
}
반응형
'알고리즘(Algorithm) > 프로그래머스(Programmers)' 카테고리의 다른 글
[프로그래머스] 폰켓몬 - JAVA (0) | 2021.10.23 |
---|---|
[프로그래머스] 체육복 - JAVA (0) | 2021.10.22 |
[프로그래머스] 내적 - JAVA (0) | 2021.10.22 |
[프로그래머스] 완주하지 못한 선수 - JAVA (0) | 2021.10.21 |
[프로그래머스] 음향 더하기 - JAVA (0) | 2021.10.20 |