문제
내가 작성한 정답
import java.util.*;
class Solution {
public int[] solution(int[] arr, int[] query) {
int s = 0, e = arr.length-1;
for(int i=0; i<query.length; i++){
int q = query[i];
if(i%2==0) e = s+q;
else s = s+q;
}
return Arrays.copyOfRange(arr,s,e+1);
}
}다른 사람들의 정답
import java.util.Arrays;
import java.util.stream.IntStream;
class Solution {
public int[] solution(int[] arr, int[] query) {
return IntStream.range(0, query.length)
.boxed()
.reduce(arr, (current, next) -> next % 2 == 0 ?
Arrays.copyOfRange(current, 0, query[next] + 1) :
Arrays.copyOfRange(current, query[next], current.length),
(a, b) -> a);
}
}Share article