개발/코딩테스트

[프로그래머스 | JavaScript] 배열 조각하기

prpn97 2023. 5. 2. 00:03

 

<문제 풀이>

function solution(arr, query) {
  for (let i = 0; i < query.length; i++) {
    if (i % 2 === 0) { // 짝수 인덱스 처리
      arr.splice(query[i] + 1);
    } else { // 홀수 인덱스 처리
      arr.splice(0, query[i]);
    }
  }
  return arr;
}

문제 설명 그대로, (query의) 짝수 인덱스에서는 query[i]를 제외하고 그 뒤의 요소를 제거한다.

(query의) 홀수 인덱스에서는 query[i]를 제외하고 그 앞의 요소를 제거한다.

 

splice()의 첫 번째 요소는 제거를 시작할 지점, 두 번째 요소는 지울 요소의 개수를 의미한다.

두 번째 요소를 쓰지 않으면 끝까지 제거한다. 

짝수는 해당 값은 남기고, 그 뒤의 요소를 제거하기 때문에 query[i]+1부터 끝까지 지운다. 

홀수는 처음부터 해당 값 직전까지 지우는 것이기 때문에 0부터 query[i]개를 지운다. 

 

(짝) 0,1,2,3,4,5 에서 4+1인 5번째 인덱스(5)부터 끝까지 지운다. >> 0,1,2,3,4

(홀) 0,1,2,3,4 에서 0부터 1개를 지운다. >> 1,2,3,4

(짝) 1,2,3,4에서 2+1인 3번째 인덱스(4)부터 끝까지 지운다. >> 1,2,3 

 

 

 

 

728x90