반응형
문제 설명
1부터 입력받은 숫자 n 사이에 있는 소수의 개수를 반환하는 함수, solution을 만들어 보세요.
소수는 1과 자기 자신으로만 나누어지는 수를 의미합니다.
제한 조건
n은 2이상 1000000이하의 자연수입니다.
입출력 예
n | result |
10 | 4 |
5 | 3 |
문제풀이
class Solution {
public int solution(int n) {
int answer = 0;
int[] ch = new int[n+1];
for(int i = 2; i <= n; i++) {
if(ch[i] == 0) {
answer++;
}
for(int j = i; j <= n; j = j+i) {
ch[j] = 1;
}
}
return answer;
}
}
해결방법
1. 소수를 쉽게 판별할 수 있는 에라토스테네스의 체를 이용하였습니다.(i의 배수에 위치하는 인덱스의 값을 1로 변경 해당 값의 인덱스의 값이 0이면 소수이다.)
반응형
'알고리즘 > 프로그래머스 LV1' 카테고리의 다른 글
[프로그래머스]LV1 카드뭉치 (0) | 2023.05.23 |
---|---|
[프로그래머스] LV1 소수 만들기 (0) | 2023.05.22 |
[프로그래머스] LV.1 추억 점수 (0) | 2023.05.20 |
[프로그래머스]LV1 크기가 작은 부분 문자열 (0) | 2023.05.13 |
[프로그래머스]LV.1 크레인 인형뽑기 (0) | 2023.05.12 |