[Programmers/ 코딩테스트 연습] 배열자르기 여러 방법 Java (for loop, copyOfRange, IntStream.rangeClosed)
2022. 12. 2. 08:57ㆍIT/Programmers
728x90
반응형
배열자르기 (Java)
class Solution {
public int[] solution(int[] numbers, int num1, int num2) {
int[] answer = new int[num2 - num1 + 1];
int cnt = 0;
for (int i = num1; i <= num2; i++) {
answer[cnt] = numbers[i];
cnt++;
}
return answer;
}
}
for loop 이용한 방법
import java.util.*;
class Solution {
public int[] solution(int[] numbers, int num1, int num2) {
return Arrays.copyOfRange(numbers, num1, num2 + 1);
}
}
Arrays에 numbers의 num1부터 num2까지 범위를 copyOfRange로 복사.
#배열복사 #배열인덱스복사 #copyOfRange
import java.util.stream.IntStream;
class Solution {
public int[] solution(int[] numbers, int num1, int num2) {
return IntStream.rangeClosed(num1, num2).map(i -> numbers[i]).toArray();
}
}
#IntStream 은 int 배열을 반환하는구나..
아 .toArray()가 있어서 배열 반환이고..
InStream.rangeClosed (num1, num2) : num1부터 num2까지의 범위
.map( i -> numbers[i])
i를 numbers[i]로 반환하는데, 이 때 범위가 num1~num2가 되는거구나!
#rangeClosed
728x90
반응형