
정수 배열 arr와 2개의 구간이 담긴 배열 intervals가 주어집니다.
intervals는 항상 [[a1, b1], [a2, b2]]의 꼴로 주어지며 각 구간은 닫힌 구간입니다. 닫힌 구간은 양 끝값과 그 사이의 값을 모두 포함하는 구간을 의미합니다.
이때 배열 arr의 첫 번째 구간에 해당하는 배열과 두 번째 구간에 해당하는 배열을 앞뒤로 붙여 새로운 배열을 만들어 return 하는 solution 함수를 완성해 주세요.
arr의 길이 ≤ 100,000arr의 원소 < 100a1 ≤ b1 < arr의 길이a2 ≤ b2 < arr의 길이| arr | intervals | result |
|---|---|---|
| [1, 2, 3, 4, 5] | [[1, 3], [0, 4]] | [2, 3, 4, 1, 2, 3, 4, 5] |
입출력 예 #1
function solution(arr, intervals) {
// intervals에서 구간을 바로 추출
const [[a, b], [c, d]] = intervals;
// 두 구간을 슬라이싱하여 결합
return [...arr.slice(a, b + 1), ...arr.slice(c, d + 1)];
}
// 입출력 예 테스트
console.log(solution([1, 2, 3, 4, 5], [[1, 3], [0, 4]])); // [2, 3, 4, 1, 2, 3, 4, 5]
const [[a, b], [c, d]] = intervals는 intervals 배열에서 두 구간의 시작과 끝 인덱스를 분해할당합니다.a, b는 첫 번째 구간의 시작과 끝, c, d는 두 번째 구간의 시작과 끝을 나타냅니다.arr.slice(a, b + 1):[a, b]에 해당하는 배열을 추출합니다.b + 1을 사용하여 b 인덱스까지 포함되도록 만듭니다.arr.slice(c, d + 1):[c, d]에 해당하는 배열을 추출합니다.[...arr.slice(a, b + 1), ...arr.slice(c, d + 1)]:...)를 사용하여 두 구간의 배열을 하나의 배열로 결합합니다.