🌈 프로그래머스

[프로그래머스: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