[Lv.0] 배열 만들기

woodstock·2024년 2월 22일
0

코딩테스트

목록 보기
44/56
post-thumbnail

배열의 유사도

문제설명

정수 배열 arr와 2개의 구간이 담긴 배열 intervals가 주어진다.

intervals는 항상 [[a1, b1], [a2, b2]]의 꼴로 주어지며 각 구간은 닫힌 구간이다. 닫힌 구간은 양 끝값과 그 사이의 값을 모두 포함하는 구간을 의미한다.

이때 배열 arr의 첫 번째 구간에 해당하는 배열과 두 번째 구간에 해당하는 배열을 앞뒤로 붙여 새로운 배열을 만들어 return 하는 solution 함수를 완성하는 문제이다.

풀이

풀이 1.

function solution(arr, intervals) {
    const [a1, b1, a2, b2] = intervals.flat();
    return arr.slice(a1, b1 + 1).concat(arr.slice(a2, b2 + 1));
}

풀이해설

const array = [ 'a', 'b', 'c', [ 'd', 'e', 'f' ] ];

array.flat(); // [ 'a', 'b', 'c', 'd', 'e', 'f' ]
const arr1 = ['abc'];
const arr2 = ['def'];

arr1.concat(arr2); // [ 'abc', 'def' ]

풀이 2.

function solution(arr, intervals) {
    let [[a, b], [c, d]] = intervals;
    return [...arr.slice(a, b + 1), ...arr.slice(c, d + 1)];
}
profile
해내는 사람

0개의 댓글