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()를 잘 사용해야겠다.