강의로 돌아가기
yjw113080

javascript 효율성 테스트 통과를 못하고 있습니다.

이래 저래 많이 짜봤는데, 제가 짠 코드 중에서는 아래 코드가 가장 속도가 빨랐습니다.
그런데 효율성 테스트는 절대 통과를 못하네요..
function prime 안에서 for문을 도는 게 문제이지 않을까 의심은 되는데 어떻게 개선을 해야 할지 잘 모르겠습니다.
고수님들의 도움이 필요합니다.

function solution(n) {
    let arr = [];
    for (let i = 2; i <= n; i++) arr.push(i);

    function prime(a) {
        let divisor = Math.floor(Math.sqrt(a));
        for (let i=2; i <= divisor; i++) {
            if (a%i==0) return false;
        }
        return true;
    }

    let answer = arr.filter(prime).length;
    return answer;    
}
1 개의 답변
Demi

안녕하세요. 다른 분들의 팁 을 참고해보시는게 어떨까요?

답변 쓰기
이 입력폼은 마크다운 문법을 지원합니다. 마크다운 가이드 를 참고하세요.