📌 문제
https://programmers.co.kr/learn/courses/30/lessons/42748?language=java
📌 풀이
- 2차원 배열에 있는 commands 변수 길이만큼 리턴할 answer 변수에 길이 지정
- 문자열을 자를 때 subString 메서드처럼 배열을 구간별로 잘라서 가지고 오고 싶어서 검색해 보았더니 Arrays.copyOfRange() 메서드가 있었고 이를 활용하여 풀었다.
copyOfRange(array, fromIndex, toIndex)
- 전달받은 배열의 지정된 범위에 해당하는 요소만을 새로운 배열로 복사하여 반환해주는 메서드이다.
- 매개변수로 복사할 원본 배열(array), 원본 배열에서 복사할 범위의 시작 인덱스(fromIndex), 원본 배열에서 복사할 범위의 끝 인덱스(toIndex)
📌 코드
package programmers;
import java.util.Arrays;
public class Pro_220603 { // K번째 수
public static void main(String[] args) {
int[] array = {1, 5, 2, 6, 3, 7, 4};
int[][] commands = {{2, 5, 3}, {4, 4, 1}, {1, 7, 3}};
System.out.println(Arrays.toString(solution(array, commands)));
}
public static int[] solution(int[] array, int[][] commands) {
int[] answer = new int[commands.length];
for (int i = 0; i < answer.length; i++) {
int[] tempArr = Arrays.copyOfRange(array, commands[i][0] - 1, commands[i][1]);
Arrays.sort(tempArr);
answer[i] = tempArr[commands[i][2] - 1];
}
return answer;
}
}
'Programmers' 카테고리의 다른 글
[Java] 프로그래머스 : 두개 뽑아서 더하기 (0) | 2022.07.01 |
---|---|
[Java] 프로그래머스 : 주식가격 (0) | 2022.06.09 |
[Java] 프로그래머스 : 약수의 개수와 덧셈 (0) | 2022.05.30 |
[Java] 프로그래머스 : 예산 (0) | 2022.05.27 |
[Java] 프로그래머스 : 최소직사각형 (0) | 2022.05.23 |