리스트 자르기

RingKim1·2024년 7월 24일

algorithm

목록 보기
16/18

리스트 자르기

해결

function solution(n, slicer, num_list) {
    let answer = [];
    const [a, b, c] = slicer;
    if (n === 1) {
        return num_list.slice(0, b + 1);
    } else if (n === 2) {
        return num_list.slice(a);
    } else if (n === 3) {
        return num_list.slice(a, b + 1);
    } else {
        for (let i = a; i <= b; i += c) {
            answer.push(num_list[i]);
        }
        return answer;
    }
}

TroubleShooting

문제

중간에 풀 때

if (n = 1), if (n = 2), if (n = 3)

이라고 작성...

원인

할당 연산자를 사용, 조건문 사용법 오류

해결

일치 연산자 사용

if (n === 1), if (n === 2), if (n === 3)

다른 사람 풀이

스위치문 사용

function solution(n, slicer, num_list) {
    let [a, b, c] = [...slicer];

    switch(n) {
        case 1:
            return num_list.slice(0, b + 1);
        case 2:
            return num_list.slice(a);
        case 3:
            return num_list.slice(a, b + 1);
        case 4:
            return num_list.slice(a, b + 1).filter((_, idx) => !(idx % c));
    }
}

객체 사용

신기하다

const slices = {
  1: (num_list, [a, b, c]) => num_list.slice(0, b + 1),
  2: (num_list, [a, b, c]) => num_list.slice(a),
  3: (num_list, [a, b, c]) => num_list.slice(a, b + 1),
  4: (num_list, [a, b, c]) => num_list.slice(a, b + 1).filter((_, i) => i % c === 0),
};

function solution(n, slicer, num_list) {
  return slices[n](num_list, slicer);
}

정리

조건문에서는 ==(동등 연산자) 또는 ===(일치 연산자)를 사용하자.

profile
커피는 콜드브루

0개의 댓글