728x90
class Solution {
public int solution(int n) {
int answer = 0;
boolean array[] = new boolean[n+1];
// 소수가 아니면 true로 바꾸기
// 1은 소수가 아니므로 true
array[1] = true;
//에라토스테네스의 체로 구하기
for(int i=2; i<=n; i++){
if(!array[i]){
for(int j=i*i; j<=n; j+=i) array[j] = true;
}
}
for(int i=2; i<=n;i++){
if(array[i]) answer++;
}
return answer;
}
}
에라토스테네스의 체로 소수가 아닌 것들을 카운트해서 반환했다.
에라토스테네스의 체에 대해서는 알고리즘 탭에서 따로 정리하겠다.
반응형
'CodingTest > Programmers' 카테고리의 다른 글
| [프로그래머스] Lv.0 모스부호 (1) | 2022.12.01 |
|---|---|
| [프로그래머스] Lv.0 중복된 문자 제거** (0) | 2022.11.30 |
| [프로그래머스] Lv.0 369게임 (0) | 2022.11.30 |
| [프로그래머스] Lv.0 문자열 정렬하기 (2)* (0) | 2022.11.29 |
| [프로그래머스] Lv.0 최댓값 만들기 (2) (0) | 2022.11.29 |
댓글