코린이의 소소한 공부노트

[프로그래머스/Lv.0] 배열 조각하기 본문

코딩테스트 풀이/JAVA

[프로그래머스/Lv.0] 배열 조각하기

무지맘 2023. 5. 3. 23:39

1. Input, Output, Example

query를 순회하면서 다음 작업을 반복한다.

// 짝수 인덱스에서는 arr에서 query[i]번 인덱스를 제외하고 배열의 query[i]번 인덱스 뒷부분을 잘라서 버린다.

// 홀수 인덱스에서는 arr에서 query[i]번 인덱스는 제외하고 배열의 query[i]번 인덱스 앞부분을 잘라서 버린다.

- 위 작업을 마친 후 남은 arr의 부분 배열을 반환

 

2. Constraint

1) 5 arr의 길이 100,000

2) 0 arr의 원소 100

3) 1 query의 길이 < min(50, arr의 길이 / 2)

4) query의 각 원소는 0보다 크거나 같고 남아있는 arr의 길이 보다 작다.

 

3. Code

1) 첫 코드(2023/05/03)

import java.util.*;
class Solution {
    public int[] solution(int[] arr, int[] query) {
        int len = arr.length;
        for(int i=0 ; i<query.length ; i++){
            if(i%2==0){
                len = query[i]+1;
                System.arraycopy(arr, 0, arr, 0, len);            
            }else{
                len -= query[i];
                System.arraycopy(arr, query[i], arr, 0, len);
            }
        }
        return Arrays.copyOfRange(arr, 0, len);
    }
}