728x90
class Solution {
public int solution(int n) {
// 1 ~ n까지 값을 넣을 배열 생성
int[] arr = new int[n+1];
// 배열 인덱스에 인덱스값 할당
for(int i=0; i<=n; i++)
arr[i] = i;
// 소수가 아닐 경우 배열의 요소 값을 0으로 할 것이다.
arr[1] = 0;
// 소수가 아닌 수의 개수를 세어줄 수
int count = 0;
for(int i=1; i<=n; i++) {
if(arr[i] == 0) { // 소수가 아닐 경우
count++;
continue;
}
// 배수를 활용하여 소수가 아닌 수를 0으로 할당
for(int k=2; k<=n/i; k++) // 본인은 제외하기 위해 k는 2부터 시작
arr[i*k] = 0;
} // end of for
return n-count;
}
}
728x90
'[알고리즘] > 자바 알고리즘 공부' 카테고리의 다른 글
[알고리즘 공부] 등수 구하기 (0) | 2022.04.15 |
---|---|
[알고리즘 공부] 점수 계산 (0) | 2022.04.15 |
[알고리즘 공부] 유효한 팰린드롬 (0) | 2022.04.08 |
[알고리즘 공부] 회문 문자열 (0) | 2022.04.08 |