[Lv.0] 순서 바꾸기

woodstock·2023년 11월 30일
0

코딩테스트

목록 보기
14/56
post-thumbnail

순서 바꾸기

문제설명

정수 리스트 num_list와 정수 n이 주어질 때, num_listn 번째 원소 이후의 원소들과 n 번째까지의 원소들로 나눠 n 번째 원소 이후의 원소들을 n 번째까지의 원소들 앞에 붙인 리스트를 return하도록 solution 함수를 완성하는 문제이다.

배열 메서드의 활용

풀이

풀이 1.

function solution(num_list, n) {
    const arr1 = num_list.slice(0, n);
    const arr2 = num_list.slice(n, num_list.length);
  
    return arr2.concat(arr1);
}
  • sliceconcat 메서드를 사용하여 원본 배열을 변경하지 않고, 주어진 인덱스를 기준으로 배열을 두 부분으로 나누고 다시 합치는 안전하고 명확한 접근 방식이다.

풀이 2.

const solution = (num_list, n) => num_list.splice(n).concat(num_list);
  • spliceconcat을 사용하여 더 간결하지만, splice는 원본 배열을 수정하는 부작용이 있다.
    이 방법은 코드가 더 짧고 직관적이지만, 원본 배열의 변경이 필요 없는 경우에는 주의해서 사용해야 한다.

풀이해설

const arr = [3, 4, 5, 1, 2];
const part = arr.splice(3);

console.log(part); // [ 1, 2 ]
console.log(arr); // [ 3, 4, 5 ]
const newArr = part.concat(arr);

console.log(newArr); // [ 1, 2, 3, 4, 5 ]

두 방법 모두 문제를 해결하는 데 효과적이지만, 원본 데이터의 보존 여부와 코드의 간결성에 따라 선택할 수 있다.

profile
해내는 사람

0개의 댓글