[Lv.0] n 번째 원소부터

woodstock·2023년 12월 3일
0

코딩테스트

목록 보기
17/56
post-thumbnail

n 번째 원소부터

문제설명

정수 리스트 num_list와 정수 n이 주어질 때, n 번째 원소부터 마지막 원소까지의 모든 원소를 담은 리스트를 return하도록 solution 함수를 완성하는 문제이다.

배열메서드의 활용

풀이

풀이 1.

function solution(num_list, n) {
    let answer = [];
    for(let i = n-1; i < num_list.length; i++) {
        answer.push(num_list[i]);
    }
    return answer;
}
  • 명시적이고 이해하기 쉬우나 코드가 길고 반복문을 사용함으로써 성능적으로 비효율적일 수 있다.

풀이 2.

const solution = (num_list, n) => num_list.slice(n - 1);
  • slice메서드를 사용하여 짧은 코드로 원하는 부분의 배열을 쉽게 추출할 수 있으며, 가독성이 높고 유지보수에 용이하다.

풀이해설

slice메서드는 배열의 특정 부분을 새로운 배열로 반환한다.
이 때, 첫번째 인자는 시작 인덱스를, 두 번째 인자를 종료 인덱스를 나타낸다.
종료 인덱스에 해당하는 요소는 반환되는 배열에 포함되지 않는다.

const arr = [0, 1, 2, 3, 4, 5];
// 0번 인덱스부터 시작해서 1번 인덱스 전까지, 즉 첫 번째 요소만 포함하는 새 배열을 반환
arr.slice(0, 1); // [ 0 ]
// 0번 인덱스부터 시작해서 2번 인덱스 전까지, 즉 첫 두 요소 [0, 1]를 반환
arr.slice(0, 2); // [ 0, 1 ]

arr.slice(0, 3); // [ 0, 1, 2 ]
arr.slice(0, 4); // [ 0, 1, 2, 3 ]
arr.slice(0, 5); // [ 0, 1, 2, 3, 4 ]
arr.slice(0, 6); // [ 0, 1, 2, 3, 4, 5 ]
// 배열의 전체를 반환
arr.slice(0);
// 배열의 끝에서부터 6개의 요소를 포함하여 전체를 반환
arr.slice(-6);

// 1번 인덱스부터 시작하여 배열의 나머지 [1, 2, 3, 4, 5]를 반환
arr.slice(1);
// 배열의 끝에서부터 5개의 요소를 포함하여 [1, 2, 3, 4, 5]를 반환
arr.slice(-5);

// [ 2, 3, 4, 5 ]
arr.slice(2);
arr.slice(-4);

// [ 3, 4, 5 ]
arr.slice(3);
arr.slice(-3);

// [ 4, 5 ]
arr.slice(4);
arr.slice(-2);

// [ 5 ]
arr.slice(5);
arr.slice(-1);
profile
해내는 사람

0개의 댓글