[프로그래머스] K번째수 (java)
🔗 문제링크
https://programmers.co.kr/learn/courses/30/lessons/42748
👩🏻💻 코드
import java.util.*;
class Solution {
public static int[] solution(int[] array, int[][] commands) {
int[] answer = new int[commands.length];
List<Integer> arr_list = new ArrayList<>();
for (int a : array) {
arr_list.add(a);
}
for (int i = 0; i < commands.length; i++) {
List<Integer> new_list = new ArrayList<>(arr_list);
new_list = new_list.subList(commands[i][0] - 1, commands[i][1]);
Collections.sort(new_list);
answer[i] = new_list.get(commands[i][2] - 1);
}
return answer;
}
}
- 다른 사람의 풀이 참고 후
import java.util.*;
class Solution {
public static 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;
}
}
📝 정리
처음엔 subList
를 사용하여 자르고 복사했는데 Arrays.copyOfRange
를 사용하니 더욱 간편했다.
문제마다 적절한 것을 사용할 수 있게끔 연습해야겠다.
Author And Source
이 문제에 관하여([프로그래머스] K번째수 (java)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@hammii/프로그래머스-K번째수-java저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)