<문제 풀이>
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
'개발 > 코딩테스트' 카테고리의 다른 글
[프로그래머스 | JavaScript] 비밀지도 (0) | 2023.05.06 |
---|---|
[JavaScript] 자원에 맞게 글 출력하기 (0) | 2023.05.05 |
[백준 | JavaScript] 15552 빠른 A+B (0) | 2023.05.01 |
[프로그래머스 | JavaScript] 예산 (0) | 2023.05.01 |
[프로그래머스 | JavaScript] 같은 숫자는 싫어 (0) | 2023.04.29 |