1. 먼저 array를 commands[i][0] 인덱스 부터 commands[i][1]인덱스까지 자른다
2. 그 배열을 오름차순 정렬한다.
3. 그 배열에서 commands[i][2] 번째 수를 answer배열에 넣는다 ( 인덱스는 -1)
결과코드
package programm;
import java.util.Arrays;
public class solution {
public int[] solution(int[] array, int[][] commands) {
int[] answer = new int[commands.length];
for (int i = 0; i < commands.length; i++) {
int[] copyarr = Arrays.copyOfRange(array, commands[i][0]-1, commands[i][1]);
Arrays.sort(copyarr);
answer[i] = copyarr[commands[i][2]-1];
}
return answer;
}
public static void main(String[] args) {
solution s = new solution();
int[] array = {1, 5, 2, 6, 3, 7, 4} ;
int[][] commands = {{2, 5, 3}, {4, 4, 1}, {1, 7, 3}};
int[] answer = s.solution(array, commands);
System.out.println(Arrays.toString(answer));
}
}
answer은 commands의 길이만큼 생성될 것이기에 선언을 해주었다.
Arrays.copyOfRange
원본 배열에서 어디서 부터 어디까지 잘라서 배열로 리턴하는 함수이다.
두번째 파라미터에는 시작 인덱스, 세번째 파라미터에는 끝 인덱스를 넣는데 끝 인덱스는 포함하지 않는다
Arrays.sort
오름차순 정렬을 해준다.
728x90
'알고리즘 > 프로그래머스 문제풀이' 카테고리의 다른 글
[프로그래머스] 위장 java / HashMap 사용 (0) | 2021.06.01 |
---|---|
[프로그래머스] 전화번호 목록 java /효율성 성공! Arrays.sort (2) | 2021.05.31 |
[프로그래머스] 가장 큰 수 java / 정렬/ Comparator, compare, compareTo 메소드로 String 오름차순 내림차순 정렬 (0) | 2021.05.28 |
[프로그래머스] 모의고사 java / 완전 탐색 / 완전 탐색 패턴은 나머지 연산자로 (0) | 2021.05.27 |
[프로그래머스] 완주하지 못한 선수 java / Array.sort(해시로 다시 풀기 체크) (0) | 2021.05.25 |