효율성에서 시간초과 난 코드. 일반 테스트에서는 통과했는데..
function solution(n) {
var answer = 0;
let temp = []
// 임시 temp array 만듦
for(let i = 2; i <=n; i++){
temp.push(i)
}
// 임시로 2~n까지 array
let primeArr = temp.filter((number) => {
// fiilter를 통해 primeNumber 걸러줄 예정
for (let j=2; j<=Math.sqrt(number); j++){
if (number % j === 0) return false
// 소수면 true 아니면 false로 새로운 배열 만듦
}
return true
})
answer = primeArr.length
// 배열의 길이를 answer로 만듦
return answer;
}
// 소수인지 판별하는 함수
function isPrime(x) {
for (let i = 2; i <= Math.sqrt(x); i++) {
if (x % i === 0) return false;
}
return true;
}
function solution(n) {
// 소수의 개수를 저장할 변수
let answer = 0;
// 1은 소수가 아니므로 2부터 n까지 모든 수에 대해
for (let i = 2; i <= n; i++) {
// 소수이면 소수의 개수에 1 추가
if (isPrime(i)) answer++;
}
return answer;
}
그 이후는 어려워서 안 되겠다. 끝.