[Algorithms] Complex Array

[Algorithms] Complex Array

·

2 min read

0단계 : 배열 조각하기

정수 배열 arrquery가 주어집니다.

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

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

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

위 작업을 마친 후 남은 arr의 부분 배열을 return 하는 solution 함수를 완성해 주세요.

Example

arrqueryresult
[0, 1, 2, 3, 4, 5][4, 1, 2][1, 2, 3]
query의 값query 처리 전query 처리 후비고
4[0, 1, 2, 3, 4, 5][0, 1, 2, 3, 4]0번 인덱스의 쿼리이므로 뒷부분을 자른다.
1[0, 1, 2, 3, 4][1, 2, 3, 4]1번 인덱스의 쿼리이므로 앞부분을 자른다.
2[1, 2, 3, 4][1, 2, 3]2번 인덱스의 쿼리이므로 뒷부분을 자른다.

Solution

function solution(arr, query) {
    var answer = [...arr];
    for(let i=0; i<query.length; i++){
        if(i%2==0){
            answer=answer.slice(0,query[i]+1)
        }else if(i%2!=0){
            answer=answer.slice(query[i])
        }
    }
    return answer;
}
  • [...arr] - The length of arr is not fixed

  • You can put the result of answer.slice() again into answer