
내가 작성한 코드
import java.util.stream.IntStream;
class Solution {
public int[] solution(int[] arr, int[] query) {
for (int i = 0; i < query.length; i++) {
// 짝수면 뒷부분 -1로 변환
if (i % 2 == 0) {
for (int j = query[i] + 1; j < arr.length; j++) {
arr[j] = -1;
}
}
// 홀수면 앞부분 -1로 변환
else {
for (int j = 0; j < query[i]; j++) {
arr[j] = -1;
}
}
// 반복이 끝날 때마다 -1을 제외한 배열로 재설정
arr = IntStream.of(arr).filter(j -> j != -1).toArray();
}
return arr;
}
}
다른 사람의 코드
import java.util.*;
class Solution {
public int[] solution(int[] arr, int[] query) {
int start = 0; // 시작 인덱스
int end = arr.length - 1; // 끝인덱스
for (int i = 0; i < query.length; i++) {
if (i % 2 == 0) {
end = start + query[i] - 1; // 끝 인덱스 갱신
} else {
start += query[i]; // 시작 인덱스 갱신
}
}
return Arrays.copyOfRange(arr, start, end + 2);
}
}
Share article