반응형
내 코드 (틀림)
import java.util.*;
class Solution {
public int[] solution(int[] array, int[][] commands) {
int[] answer = new int[commands.length];
// 배열 자르기
int[] arr1 = Arrays.copyOfRange(array, commands[0][0] - 1, commands[0][1] - 1);
int[] arr2 = Arrays.copyOfRange(array, commands[1][0] - 1, commands[1][1] - 1);
int[] arr3 = Arrays.copyOfRange(array, commands[2][0] - 1, commands[2][1] - 1);
Arrays.sort(arr1);
Arrays.sort(arr2);
Arrays.sort(arr3);
answer[0] = arr1[commands[0][2] - 1];
answer[1] = arr2[commands[1][2] - 1];
answer[2] = arr3[commands[2][2] - 1];
return answer;
}
}
나름 30분 고민한.....
Arrays.copyOfRange()
를 사용한 코드다. (반복문 안 돌리고 일단 작성해봤따,,,)
근데 이제 범위가 안 맞아서 실행이 안 되는...
그래서 결국 다른 분 코드를 보기로 했다
정답 코드
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[] tmp = Arrays.copyOfRange(array, commands[i][0] - 1, commands[i][1]);
Arrays.sort(tmp);
answer[i] = tmp[commands[i][2] - 1];
}
return answer;
}
}
내가 위에서 작성한 코드를 반복문으로 한 거라 돌아가는 방식은 같고..
값을 가져가는 복사한 배열을 하나만 새로 더 만들어주면 되었던 것,,, (tmp)
그리고 Arrays.copyOfRange()
에서 끝 범위는 -1을 안 하니 잘 된다...
틀린 지점이 좀 허무.....하지만.... 그래도 괜차나,,,😅
(참고)
[Java] 특정 인덱스에서 배열 자르기
Java에서 특정 인덱스를 기준으로 배열을 자르는 2가지 방법을 소개합니다. 반복문 이용하기 Arrays.copyOfRange() 이용하기 1. 반복문 이용하기 import java.util.Arrays; public class ArraySplit { public static void main
hianna.tistory.com
[프로그래머스] K번째수 - java
[프로그래머스 코딩테스트] K번째수
velog.io
반응형
'코테 > 프로그래머스' 카테고리의 다른 글
[프로그래머스/Lv. 1] 완주하지 못한 선수 (0) | 2023.02.21 |
---|---|
[프로그래머스/Lv. 2] 가장 큰 수 (0) | 2023.02.21 |
[프로그래머스/Lv. 1] 가운데 글자 가져오기 (0) | 2023.02.20 |
[프로그래머스/Lv. 1] 나누어 떨어지는 숫자 배열 (0) | 2023.02.20 |
[프로그래머스/Lv. 1] 최대공약수와 최소공배수 (0) | 2023.02.20 |