[프로그래머스][소수 찾기]-Lv.1

호준·2021년 12월 31일
0

Algorithm

목록 보기
47/111
post-thumbnail

문제

코드

class Solution {
	//소수 판별하여 true/false 반환하는 함수
    public static boolean checkPrime(int num){
        if(num==1) return false;
        for(int i=2; i<=Math.sqrt(num); i++){
            if(num%i==0) return false;
        }
        return true;
    }
    public int solution(int n) {
        int answer = 0;
        //1~n 까지 반복문 돌면서 소수 판단을 한다.
        for(int i=1; i<=n; i++){
            if(checkPrime(i)){ // 소수이면 answer 플러스
                answer++;
            }
        }
        return answer;
    }
}

코드 리뷰

 for(int i=2; i<=Math.sqrt(num); i++){}

처음에는 반복문 조건으로 num/2까지 설정했지만 테스트 케이스중 1개가 시간초과가 나오고 효율성에서도 통과하지 못했다.
그래서 java에 있는 Math.sqrt(num) 을 사용하니 시간초과도 안나오고 효율성에서도 통과할 수 있었다.
다음부터는 이제 계속 Math.sqrt()를 잘 사용해야겠다.

실패 후 성공

profile
도전하자

0개의 댓글