728x90
두번째 시도
import java.util.Arrays; class Solution { public int[] solution(int[] array, int[][] commands) { int[] answer = new int[commands.length]; int cnt =0; for(int i=0;i<commands.length;i++) { int first = commands[i][0]-1; int last = commands[i][1]; int size = last - first; int pick = commands[i][2]-1; int[] temp = new int[size]; for(int j=first;j<last;j++) { temp[j - first] = array[j]; // System.out.println(array[j - first]); } Arrays.sort(temp); answer[cnt] = temp[pick]; cnt++; } return answer; } } |
고찰 : 역시 똑같은 방법으로 풀었다. 하지만 소팅 부분과 시간 단축은 좀 하였다.
베스트 코드(프로그래머스 출처)
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; } } |
int[] temp = Arrays.copyOfRange(array, commands[i][0]-1, commands[i][1]);
이부분 너무 좋았다. 역시 자바의 세계는 양파같은 매력이 있네요...
굿굿
728x90
'프로그래머스' 카테고리의 다른 글
콜라츠 추측 (0) | 2023.01.10 |
---|---|
숫자 문자열과 영단어 (0) | 2022.12.26 |
행렬의덧셈 (0) | 2022.12.26 |
나누어 떨어지는 숫자 배열 (0) | 2022.12.26 |
하샤드수 (0) | 2022.12.26 |