카테고리 없음

[프로그래머스] 배열 조각하기 (Java, Python)

garamdev 2026. 9. 2.
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]