코딩테스트/프로그래머스 기초 트레이닝

[Javascript] n개 간격의 원소들

dev_swH 2023. 5. 18. 22:07

문제 설명

정수 리스트 num_list와 정수 n이 주어질 때, num_list의 첫 번째 원소부터 마지막 원소까지 n개 간격으로 저장되어있는 원소들을 차례로 담은 리스트를 return하도록 solution 함수를 완성해주세요.

 

filter()로 하면 되겠다!

➡ 엇 색인을 어떻게 선별하지

➡ for 반복문으로 해봐야겠다.

➡ 조건에 i + n, i * n 같은 뻘짓만 해보다가 반복문 자체가 안 돌아가는 오류로 장렬히 실패.

(1. 당연하지...0+2 1+2 2+2가 무슨 소용이야...)
(2. 당연하지...0*n은 0인데...)

 

filter() 메소드를 이용한 풀이는 다음과 같다.

function solution(num_list, n) {
    return num_list.filter((v, i) => i % n === 0);
}

function solution(num_list, n) {
    return num_list.filter((_, i) => i % n === 0);
}
언더바( _ ) 매개변수는 사용하지 않는 변수를 뜻한다고 한다.
전부터 다른 사람의 풀이에 가끔 보이던 건데, 누군가 댓글로 질문해줘서 이번에 나도 알게 됐다. 감사합니다...!

 

그리고 for 반복문으로 내가 짜고 싶었던 코드는 이거다.

function solution(num_list, n) {
    let answer = [];

    for (let i = 0; i < num_list.length; i++) {
        if (i%n === 0) {
            answer.push(num_list[i]);
        }
    }

    return answer;
}

 

알고리즘에서 어떤 방향과 절차로 풀어나가야 하는지까지는 쉽게 그릴 수 있는 것 같은데

항상 그 계산을 이루어내는 기술적 방법에서 막히는 것 같다...

대부분이 그렇겠지만~!

계속 풀면서 자바스크립트를 숙련하는 방법밖에 없을 것 같다. 화이팅!