[JavaScript] 소수 찾기

2022. 9. 6. 10:58Algorithm/프로그래머스

level : 1

문제 링크 : 소수 찾기

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

My Solution

function solution(n) {
    let answer = 0;
    let prime = new Array(n+1).fill(true);
    for(let i = 2; i <= n; i++){
        if(prime[i]){
            answer++;
            for(let j = 2*i; j <= n; j+=i)
                prime[j] = false;
        }
    }
    return answer;
}


풀이방법
소수 구하는 방법 중  에라토스테네스의 체를 이용하였다.

prime이라는 크기가 n+1인 Array에 모두 true로 채웠다.

2이상의 수만 범위에 들어오기에 반복문을 2부터 시작한다.

index의 숫자가 소수라면 answer를 1 증가시키고 index의 배수를 인덱스로 가지느는 prime의 값을 모두 false로 바꾼다.
반복문이 종료되면 answer를 반환한다.


느낀점

에라토스테네의 체가 아닌 Set을 이용하여 간단하게 풀었다가 시간초과가 발생했다.시간복잡도를 고려하며 코드를 작성해야겠다.

'Algorithm > 프로그래머스' 카테고리의 다른 글

[JavaScript] 피보나치 수  (0) 2022.09.15
[JavaScript] 후보키  (0) 2022.09.06
[JavaScript] [1차] 프렌즈4블록  (0) 2022.09.03
[JavaScript] 네트워크  (0) 2022.09.01
[JavaScript] 위장  (0) 2022.08.31