프로그래머스 리스트 자르기 Lv.0

KUKJIN LEE's profile picture

KUKJIN LEE1개월 전 작성

function solution(n, slicer, num_list) {
    let answer = [];
    const [a, b, c] = slicer;
    switch(n) {
        case 1:
            answer = num_list.slice(0, b + 1);
            break;
        case 2:
            answer = num_list.slice(a);
            break;
        case 3:
            answer = num_list.slice(a, b + 1);
            break;
        case 4:
            answer = num_list.slice(a, b + 1).filter((_, idx) => idx % c === 0);
            break;
        default:
            answer = [];
            break;
    }
    return answer;
}

문제 요구사항에 따라 switch문을 작성할 수 있는지 확인하는 문제입니다. 반드시 switch문을 사용해서 작성할 필요는 없지만 조건이 제한적이고 가장 깔끔하게 작성할 수 있다고 판단했습니다. case 4번의 filter를 사용해서 slicer[2]의 간격만 벌릴 수 있다면 어려운 문제는 아닙니다.

 

요구사항

  1. n = 1

    • num_list의 0번 인덱스부터 b번 인덱스까지 자르기

    • 즉, num_list.slice(0, b+1)

  2. n = 2

    • num_lista번 인덱스부터 마지막 인덱스까지 자르기

    • 즉, num_list.slice(a)

  3. n = 3

    • num_lista번 인덱스부터 b번 인덱스까지 자르기

    • 즉, num_list.slice(a, b+1)

  4. n = 4

    • num_lista번 인덱스부터 b번 인덱스까지 자른 뒤, 거기서 c 간격으로 요소를 취하기

    • 예: num_list.slice(a, b+1).filter((_, idx) => idx % c === 0)

New Tech Posts