Open ah-ryeong opened 1 year ago
어? 콘솔로그 지우고 어쩌고 저쩌고 하니까 효율성 테스트에서 통과했다. ^^; 나는 바보다. 원래 다른 사람 풀이 늘 체크하고 보는데 이거는 다른 사람 풀이를 봐도 이해 못 할 것 같다. ^^>
이상하다 위에 코드처럼 콘솔로그 남발 안 하고 마지막에 딱 하나 썼는데 이게 효율성에서 걸려버리나..?
이유는 제한조건이 1000000이하의 자연수니까, 콘솔로 배열을 찍어버리니 백만개까지 콘솔로 배열을 찍어내면서 테스트하면 효율성이... 아무튼 이게 원인이었다.
전
function solution(n) {
let arr = [];
for(let i = 2; i <=n; i++) {
arr[i] = i
}
for(let i =2; i <= n; i++) {
for(let j = i+i; j <=n; j+= i ) {
if(arr[j] === 0) { continue; }
arr[j] = 0
}
}
console.log(arr);
return arr.filter((item) => item !== 0).length;
}
후
function solution(n) {
let arr = [];
for(let i = 2; i <=n; i++) {
arr[i] = i
}
for(let i =2; i <= n; i++) {
for(let j = i+i; j <=n; j+= i ) {
if(arr[j] === 0) { continue; }
arr[j] = 0
}
}
return arr.filter((item) => item !== 0).length;
}
문제
1부터 입력받은 숫자 n 사이에 있는 소수의 개수를 반환하는 함수, solution을 만들어 보세요.
소수는 1과 자기 자신으로만 나누어지는 수를 의미합니다. (1은 소수가 아닙니다.)
제한 조건 n은 2이상 1000000이하의 자연수입니다.
이 코드 효율성에서 통과 안됨..🤦♀️