💡 java.util.Arrays 관련 메소드 더 알아보기 👉 클릭!
- copyOfRange(int[] original, int from, int to) : original 배열의 from 인덱스부터 to (마지막 요소의 바로 다음)인덱스까지 복사해서 새로운 배열 반환
- fill(int[] a, int value) : 배열 a을 해당 value 값으로 채우기
- sort(int[] a) : 배열을 오름차순으로 정렬
- equals(int[] a, int[] b) : 두 배열의 내용물이 같은지 비교하기
- toString() : 배열 내용 출력하기
정답은 맞췄으나 코드가 깔끔하지 못한 것 같아서 다시 풀어보았다.
class Solution {
public int[] solution(int[] numbers, int num1, int num2) {
int[] answer = new int[num2 - num1 + 1];
for(int i = 0; i < answer.length; i++) {
answer[i] = numbers[num1];
num1++;
}
return answer;
}
}
코딩을 접한지 3년차..(경력은 3년차가 아님) for문 안에서 변수를 여러개 쓸 수 있다는 사실을 이제서야 알았다..🤦♀️ 위의 코드와 크게 다를건 없지만 문제에서 주어지는 매개변수를 손대지 않고 풀 수 있어서 좋다!
class Solution {
public int[] solution(int[] numbers, int num1, int num2) {
int[] answer = new int[num2 - num1 + 1];
for(int i = num1, j = 0; i <= num2; i++) {
answer[j] = numbers[i];
j++;
}
return answer;
}
}
Arrays.copyOfRange()
메소드로 문제를 풀었더니 한 줄로 끝나고 심지어 속도도 빠르다. 역시 아는 것이 힘..
import java.util.Arrays;
class Solution {
public int[] solution(int[] numbers, int num1, int num2) {
// copyOfRange(복사할 배열, 시작 index, 마지막 요소의 바로 다음 index)
return Arrays.copyOfRange(numbers, num1, num2+1);
}
}