
정수 리스트 num_list와 정수 n이 주어질 때, num_list의 첫 번째 원소부터 마지막 원소까지 n개 간격으로 저장되어있는 원소들을 차례로 담은 리스트를 return하도록 solution 함수를 완성해주세요.
num_list의 길이 ≤ 20num_list의 원소 ≤ 9n ≤ 4| num_list | n | result |
|---|---|---|
| [4, 2, 6, 1, 7, 6] | 2 | [4, 6, 7] |
| [4, 2, 6, 1, 7, 6] | 4 | [4, 7] |
입출력 예 #1
입출력 예 #2
function solution(num_list, n) {
// num_list에서 n개 간격으로 원소를 선택하여 반환
return num_list.filter((_, index) => index % n === 0);
}
// 입출력 예 테스트
console.log(solution([4, 2, 6, 1, 7, 6], 2)); // [4, 6, 7]
console.log(solution([4, 2, 6, 1, 7, 6], 4)); // [4, 7]
filter 메서드 사용:num_list.filter((_, index) => index % n === 0):_는 현재 요소의 값을 나타내며, 이 문제에서는 값 자체를 사용하지 않으므로 _로 표시합니다.index % n === 0 조건을 만족하는 인덱스의 요소만 포함합니다.index % n === 0:index를 n으로 나눈 나머지가 0인 경우, 해당 요소가 n개 간격에 해당합니다.n = 2: 0, 2, 4, ...의 인덱스 요소 선택.n = 4: 0, 4, ...의 인덱스 요소 선택.index % n === 0의 의미이 조건은 배열의 인덱스를 n으로 나눈 나머지가 0인지 확인하는 것입니다. 수학적으로, 이는 "n으로 나누어 떨어지는 인덱스"를 의미합니다. 이러한 방식으로 간격을 계산하면, 특정 간격으로 배열의 요소를 선택할 수 있습니다.
index % n === 0을 사용하는가?n = 3인 경우:0, 3, 6, ...과 같이 3의 배수인 인덱스만 선택됩니다.0인 경우는 수학적으로 k * n 형태(즉, n의 배수)로 표현됩니다.index % n === 0은 주어진 간격(n)에 해당하는 요소를 정확히 선택합니다.0부터 시작하므로, 간격 계산을 간단히 처리할 수 있습니다.0)는 항상 포함됩니다.n 간격으로 인덱스를 건너뛰면서 요소를 선택합니다.n = 2[4, 2, 6, 1, 7, 6]0 % 2 === 0 → 선택.1 % 2 !== 0 → 건너뜀.2 % 2 === 0 → 선택.3 % 2 !== 0 → 건너뜀.4 % 2 === 0 → 선택.5 % 2 !== 0 → 건너뜀.[4, 6, 7].간격 선택을 시각화하면 다음과 같습니다:
n = 2:[4, 2, 6, 1, 7, 6]
^ ^ ^
n = 4: