코딩 테스트

[프로그래머스 Level 0] 배열 조각하기

y_flm 2025. 3. 26. 15:01
반응형
문제:
정수 배열 arr와 query가 주어집니다. query를 순회하면서 다음 작업을 반복합니다.
짝수 인덱스에서는 arr에서 query[i]번 인덱스를 제외하고 배열의 query[i]번 인덱스 뒷부분을 잘라서 버립니다.
홀수 인덱스에서는 arr에서 query[i]번 인덱스는 제외하고 배열의 query[i]번 인덱스 앞부분을 잘라서 버립니다.
위 작업을 마친 후 남은 arr의 부분 배열을 return 하는 solution 함수를 완성해 주세요.

 

문제 풀어보기: https://school.programmers.co.kr/learn/courses/30/lessons/181893?language=javascript#

 

풀이보기
더보기
function solution(arr, query) {
    let result = [...arr];
    
    for(let i = 0; i < query.length; i++) {
       if(i % 2 === 0) {
           result = result.slice(0, query[i] + 1);
       } else {
           result = result.slice(query[i]);
       }
   }
    
    return result;
}

이 문제는 문제를 이해하는데 시간을 더 썼다;; ㅎㅎ 

 

문제를 이해해보면, query의 인덱스가 짝수인지 홀수인지에 따라 작업이 달라진다.

만약 query의 인덱스가 짝수라면, arr에서 query[i] 값의 인덱스 뒷부분을 잘라내야한다.

한마디로 arr[query[i]]의 뒷부분을 잘라내는 것이다.

홀수도 마찬가지로 arr[query[i]]의 앞부분을 잘라내는 것이다.

문제를 이해하면 풀이는 쉽다.

 

일단 query 인덱스의 짝수 홀수 여부를 가리고, slice를 이용해서 arr 값을 추출해줬다.

짝수일 경우에는 arr에서 query[i] 값의 인덱스 뒷부분을 잘라내야하므로 처음 인덱스부터 query[i] + 1까지 추출해준다.

홀수일 경우에는 앞부분을 잘라내는 것이므로 query[i] 인덱스 이전 값들은 제외시켜주면 된다.

 

반응형