시간초과
182
작성한 질문수 36
프로그래머스 LV1 소수찾기 문제에서 알려주신 방법으로 풀이를 진행했는데 정확도는 통과합니다만 시간초과가 나옵니다.
효율까지 고려하려면 다른식으로 풀어야되나요?
문제는 n =10 이 주어지면 1~10 까지의 자연수 중 소수의 개수를 찾는 문제입니다.
코드는
function solution(n) {
let count=0;
for (let i = 2 ; i <= n; i++) {
if (isPrime(i)) {
count++
}
}
return count
}
function isPrime(num) {
for (let i = 2; i <= parseInt(Math.sqrt(num)); i++) {
if ( num % i === 0) {
return false
}
}
return true
}
solution(10);
solution(5);
다음과 같이 작성했습니다.
답변 1
10
안녕하세요^^
효율성을 통과하기 위해서는 제곱근까지 돌리는 것보다는 소수를 찾는 수학적 방식인 에라토스테네스 체 방식을 써야 할 겁니다. 아래는 에라토스테네스 체 방식입니다. 에라토스테네서 체를 모르시면 구글링해보세요.
<html>
<head>
<meta charset="UTF-8">
<title>출력결과</title>
</head>
<body>
<script>
function solution(n) {
let count=0;
let ch=Array.from({length:n+1}, ()=>0);
for (let i = 2 ; i <= n; i++){
if(ch[i]===0){
count++;
for(let j=i; j<=n; j+=i){
ch[j]=1;
}
}
}
return count;
}
console.log(solution(20));
</script>
</body>
</html>
continue를 사용하는 이유
0
101
2
정렬 가능 여부 판단하기
0
80
2
알고리즘 학습법 관련해서 질문드립니다.
0
96
1
코드 리뷰 부탁드립니다!
0
107
1
indexOf를 사용해서 풀어보았습니다 !!
0
76
1
저는 이런식으로 구현 해보았습니다 !!
0
69
1
12,13,14 강의 소리만 나오고 검은 화면입니다
0
110
3
반복문 최소화하고 indexOf 사용해서 풀어봤습니다
0
74
1
영상 보기 전에 직접 풀어봤습니다.
0
79
1
섹션1의 17번문제 이 풀이로 풀어도 될까요?
0
142
2
정규표현식으로 처리해도 상관없나요 ?
0
127
2
3칸씩 건너뛸 수 있을 경우
0
132
2
강의에 대해 질문있습니다.
0
144
2
Object와 Set을 이용해 풀어봤습니다.
0
128
2
이렇게 해도 되나요?
0
107
2
선생님 중복 단어나 중복관련 문제들은 set을 이용하면 좋을것 같습니다.
0
149
2
이렇게 풀어도 괜찮을까요?
0
146
1
이렇게 풀어도 괜찮을까요?
0
125
1
모든 아나그램 찾기에서 시간복잡도
0
106
1
코드리뷰 부탁드립니다.
0
138
1
for loop 탈출은 return 문으로 해도 되지 않나요?
0
135
1
투포인트알고리즘으로 풀어봤습니다.
0
147
0
코드 리뷰 부탁드립니다.
0
121
1
코드 맞게 작성한 거 아닌가여??
0
150
1





