1 부터 n 까지의 수 중에서 소수의 개수를 반환하는 문제 입니다
이전 Lv1) 기사단원의 무기 문제에서 사용한 에라토스테네스의 체를 다시 이용하면 됩니다.
function solution(n) {
// idx 자체를 값으로 사용하기 위해
let isPrime = new Array(n + 1).fill(true);
isPrime[0] = isPrime[1] = false;
// 제곱근 까지만 계산
for (let i = 2; i * i <= n; i++) {
if (isPrime[i]) {
// i의 배수들을 모두 false로 표시
for (let j = i * i; j <= n; j += i) {
isPrime[j] = false;
}
}
}
return isPrime.filter(e => e === true).length;
}
제곱근 까지만 계산하는 이유는 아래 링크에 설명 되어있습니다.
https://daunje0.tistory.com/135
[프로그래머스] Lv1) 기사단원의 무기 ( 에라토스테네스의 체, 소수 , 약수 찾기 )
이 문제는 약수 찾기의 문제입니다function solution(number, limit, power) { let arr = [] let count = 0 for(let i = 1; i e > limit ? power : e).reduce((a,b) => a+b);}이 코드는 시간복잡도가 O(n^2)이기에 시간초과로 fail 이 된
daunje0.tistory.com
'JavaScript > Algorithm' 카테고리의 다른 글
[Algorithm] 알고리즘 기본 패턴 1 - Frequency Counter (빈도수 세기) (0) | 2024.10.31 |
---|---|
알고리즘 출제빈도순 수정중입니다 (0) | 2024.10.17 |
[Algorithm] 알고리즘의 공간 복잡도(Space Complexity)란? (0) | 2024.10.11 |
[프로그래머스] Lv1) 기사단원의 무기 ( 에라토스테네스의 체, 소수 , 약수 찾기 ) (0) | 2024.09.20 |
두 수의 최대 공약수, 최소 공배수 구하기 (유클리드 호제법, 자바스크립트) (0) | 2024.09.01 |