KUKJIN LEE
posted 2 weeks ago
프로그래머스 리스트 자르기 Lv.0
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]의 간격만 벌릴 수 있다면 어려운 문제는 아닙니다.
요구사항
-
n = 1
-
num_list
의 0번 인덱스부터b
번 인덱스까지 자르기 -
즉,
num_list.slice(0, b+1)
-
-
n = 2
-
num_list
의a
번 인덱스부터 마지막 인덱스까지 자르기 -
즉,
num_list.slice(a)
-
-
n = 3
-
num_list
의a
번 인덱스부터b
번 인덱스까지 자르기 -
즉,
num_list.slice(a, b+1)
-
-
n = 4
-
num_list
의a
번 인덱스부터b
번 인덱스까지 자른 뒤, 거기서c
간격으로 요소를 취하기 -
예:
num_list.slice(a, b+1).filter((_, idx) => idx % c === 0)
-