문제
https://school.programmers.co.kr/learn/courses/30/lessons/42748
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
코드
import java.util.*;
class Solution {
public int[] solution(int[] array, int[][] commands) {
int[] answer = new int[commands.length];
for(int i=0; i<commands.length; i++){
int start = commands[i][0]-1;
int end = commands[i][1]-1;
int findIdx = commands[i][2]-1; //찾고자 하는 idx
int[] subArray = new int[end-start+1]; //자른 Array
int idx=0;
for(int j=start; j<=end; j++){
subArray[idx++] = array[j];
}
//정렬
Arrays.sort(subArray);
answer[i] = subArray[findIdx];
}
return answer;
}
}
다른 사람 풀이를 확인해보니 Arrays 클래스의 copyOf 함수를 통해 가독성 있게 풀이를 할 수도 있는 것 같다.
다른 사람 풀이 코드
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;
}
}
'Algorithm (PS) > 프로그래머스' 카테고리의 다른 글
[프로그래머스 Level 1] 가장 가까운 같은 글자(Java) (0) | 2023.08.29 |
---|---|
[프로그래머스 Level 1] 두 개 뽑아서 더하기(Java) (0) | 2023.08.28 |
[프로그래머스 Level 1] 문자열 내 마음대로 정렬하기(Java) (0) | 2023.08.26 |
[프로그래머스 Level 1] [1차] 비밀지도(Java) (0) | 2023.08.26 |
[프로그래머스 Level 1] 숫자 문자열과 영단어(Java) (0) | 2023.08.26 |