🌈 프로그래머스
[프로그래머스:Javascript] 배열 만들기 3
Eun_zii
2024. 3. 22. 16:33
프로그래머스 Lv.0
- 배열 만들기 3
💚 문제설명
- 정수 배열 arr와 2개의 구간이 담긴 배열 intervals가 주어집니다. intervals는 항상 [[a1, b1], [a2, b2]]의 꼴로 주어지며 각 구간은 닫힌 구간입니다. 닫힌 구간은 양 끝값과 그 사이의 값을 모두 포함하는 구간을 의미합니다. 이때 배열 arr의 첫 번째 구간에 해당하는 배열과 두 번째 구간에 해당하는 배열을 앞뒤로 붙여 새로운 배열을 만들어 return 하는 solution 함수를 완성해 주세요.
💚 제한조건
- 1 ≤ arr의 길이 ≤ 100,000
- 1 ≤ arr의 원소 < 100
- 1 ≤ a1 ≤ b1 < arr의 길이
- 1 ≤ a2 ≤ b2 < arr의 길이
💚 풀이
function solution(arr, intervals) {
let answer = [];
for (let i = 0; i < intervals.length; i++) {
const [a, b] = intervals[i];
const slice = arr.slice(a, b + 1);
answer = answer.concat(slice);
}
return answer;
}
✅
intervals 간격에 따라 arr배열의 구간을 저장할 빈 배열 answer을 선언해준다.
for문으로 사용해서 intervals 배열을 반복해준다. 반복하는 동안 intervals 배열에서 [ a, b ]를 분해해주고,
arr 배열에서 인덱스 a 부터 인덱스 b( +1을 사용해서 b 포함 해준다. ) 까지 요소를 추출한다.
( slice() 메서드는 배열 일부의 얕은 복사본을 새 배열 객체로 반환합니다. )
concat( ) 메서드를 사용하여 slice 배열을 빈배열 answer 에 연결해준다.
( concat() 메소드는 두 개 이상의 배열을 병합하는 데 사용됩니다. )
728x90