연습장

52. 배열 조각하기 본문

프로그래머스/0단계

52. 배열 조각하기

js0616 2023. 7. 10. 21:20

Q. 정수 배열 arr와 query가 주어집니다.

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

짝수 인덱스에서는 arr에서 query[i]번 인덱스를 제외하고 배열의 query[i]번 인덱스 뒷부분을 잘라서 버립니다.
홀수 인덱스에서는 arr에서 query[i]번 인덱스는 제외하고 배열의 query[i]번 인덱스 앞부분을 잘라서 버립니다.
위 작업을 마친 후 남은 arr의 부분 배열을 return 하는 solution 함수를 완성해 주세요.

 


생각보다 정답률이 낮은 문제

 

이유는 문제 해석이 중의적으로 되기 때문이다. 

 

query[i] 의 홀 짝 이 아닌 i 자체의 홀 짝 을 판단해서 버릴지 말지 를 구하는 문제이다

 

올바른 해석은

arr[query[0]] 의 뒤를 버리고

arr[query[1]] 의 앞을 버리고

arr[query[2]] 의 뒤를 버리고 

...

계속 반복된다. 

 

splice 를 이용하면 원본 배열에 바로 갱신되므로 splice 를 이용하여 버려주었다. 

slice 와 혼동하지 않도록 하자. 

        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
        }

'프로그래머스 > 0단계' 카테고리의 다른 글

54. 조건에 맞게 수열 변환하기 2  (0) 2023.07.10
53. 왼쪽 오른쪽  (0) 2023.07.10
51. 2의 영역  (1) 2023.07.10
50. 리스트 자르기  (0) 2023.07.10
49. 문자개수 세기  (0) 2023.07.10