728x90
문제
https://school.programmers.co.kr/learn/courses/30/lessons/181893
프로그래머스
SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
코드(Java)
import java.util.*;
class Solution {
public int[] solution(int[] arr, int[] query) {
int left = 0;
int right = arr.length;
for (int i = 0; i < query.length; i++) {
if (i % 2 == 0) {
// 현재 구간 기준 0 - query[i] 까지 남기기
right = left + query[i] + 1;
} else {
// 현재 구간 기준 query[i] ~ 끝까지 남기기
left = left + query[i];
}
}
// 맨 마지막에 딱 한 번만 실제로 복사
return Arrays.copyOfRange(arr, left, right);
}
}
코드(Python)
def solution(arr, query):
left = 0
right = len(arr)
for i, q in enumerate(query):
if i % 2 == 0:
right = left + q + 1
else:
left = left + q
return arr[left:right]