문제 링크 : https://school.programmers.co.kr/learn/courses/30/lessons/42748
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
문제의 핵심은
1. i번째 수부터 j번째 수까지 부분배열을 구할 것
2. 배열내에서 k번째 수를 구할 것
1. Arrays.copyOfRange()
// 예시
int[] arr = {1,2,3,4};
// arr 배열을 i번째 수부터 j번째 수까지 자른다.
int[] arr1 = Arrays.copyOfRange(arr, i-1, j);
풀이
import java.util.Arrays;
class Solution {
public int[] solution(int[] array, int[][] commands) {
// commands[]{i,j, k} i~j 까지 자르고 정렬 후 k번째수
// 정답배열 선언 길이 commands.length
int[] answer = new int[commands.length];
// 1. for(commands)
// 2. array의 {i,j,k} 구하기
for(int x=0; x<commands.length; x++){
// array 의 부분 배열
int[] parts = Arrays.copyOfRange(
array, commands[x][0]-1, commands[x][1]);
Arrays.sort(parts);
answer[x] = parts[commands[x][2]-1];
}
return answer;
}
}
'코딩테스트 > 프로그래머스' 카테고리의 다른 글
[프로그래머스, JAVA, Lv1, KAKAO] 실패율 (0) | 2023.12.01 |
---|---|
[프로그래머스, JAVA, Lv1] 덧칠하기 (1) | 2023.11.29 |
[프로그래머스, JAVA, Lv1] 기사단원의 무기 (약수) (0) | 2023.11.28 |
[프로그래머스, JAVA, Lv1] 소수 찾기 (1) | 2023.11.27 |
[프로그래머스, JAVA, Lv1] 소수만들기 (조합, 경우의 수, 소수) (1) | 2023.11.27 |