코딩 테스트
[프로그래머스 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] 인덱스 이전 값들은 제외시켜주면 된다.
반응형