개발자 '쑥말고인절미'

[프로그래머스] JS 소수 찾기 본문

STUDY/코딩테스트

[프로그래머스] JS 소수 찾기

쑥말고인절미 2022. 9. 5. 14:41

문제


내 답안

function solution(n) {
    var answer = 0;
    
    let arr = Array(n+1).fill(true).fill(false, 0, 2);
    for(let i = 2; i*i <=n; i++) {
        if(arr[i]){
            for(let j = i*i; j<=n; j+=i) {
                arr[j] = false;
            }
        }
    }
    
    answer = arr.filter(element => true ===element).length;
    
    return answer;
}

메모

어떻게 해야 소수찾기를 할 수 있을까 고민고민해봤지만 답이 나오지 않았고 결국 알고리즘을 찾아보고 알 수 있었다. '에라토스테네스의 체' 라는 알고리즘으로 소수 찾기를 해결할 수 있었는데 아래 참고링크 중 첫 번째 링크를 통해서 이해할 수 있었다. 흠... 현재 실력으로 혼자 소스를 짜라고 했으면 진짜 끝까지 못했을거 같기도 하다. 내 소스는 사실 참고링크 소스와 동일하다만 이해하고 기억한대로 혼자 작성해보았다. 에라토스테네스의 체... 잊지않겠다 후

fill메소드와 filter메소드는 여러 번 본 적이 있고 사용한 적도 있는데 제대로 기억을 못하고 있다. 블로그에 기록하면서 암기해놔야겠다.


참고링크

https://mine-it-record.tistory.com/507

 

[알고리즘] 소수 찾기 - 에라토스테네스의 체 by javascript

소수를 찾는 수많은 방법중에서 가장 많이 사용된다는 "에라토스테네스의 체" 라는 소수 찾기 알고리즘에 대해 알아보자. 우선 소수란 무엇일까? 소수란 간단하게 1과 그 수 자신 이외의 자연수

mine-it-record.tistory.com

https://hianna.tistory.com/488

 

[Javascript] 배열에서 특정 값 개수 구하기

배열에서 특정 값 개수를 구하는 방법을 정리하였습니다. 1. for 반복문 2. filter 3. reduce for 반복문 const arr = ['a', 'b', 'c', 'a']; // 배열에서 'a' 개수 구하기 let count = 0; for(let i=0; i < arr.l..

hianna.tistory.com