알고리즘공부 3일차,,! 오늘도 열심히 풀어보자구~
이 문제는 1부터 입력받은 숫자 n 사이에 있는 소수의 개수를 반환하는 함수, solution을 만드는 것이였다.
나의 풀이는 아래와 같다.
function solution(n) {
let num = [];
for (let i = 2; i <= n; i++) num.push(i);
function prime(a) {
let middle = Math.floor(Math.sqrt(a));
for (let i=2; i <= middle; i++) {
if (a%i==0) return false;
}
return true;
}
let answer = num.filter(prime).length;
return answer;
}
자꾸 효율성 테스트 4번에서 실패가 뜨는데 왜그러는지 알수가 없다,,,내장함수 하나는 더 만들어서 그런가,,? filter를 써서 그런지 함수를 밖으로 빼면 효율성테스트 2번에서 실패가나고 어떻게 해야하는지 고민을 더 해봐야겠다.