티스토리 뷰

반응형

https://programmers.co.kr/learn/courses/30/lessons/92335

 

코딩테스트 연습 - k진수에서 소수 개수 구하기

문제 설명 양의 정수 n이 주어집니다. 이 숫자를 k진수로 바꿨을 때, 변환된 수 안에 아래 조건에 맞는 소수(Prime number)가 몇 개인지 알아보려 합니다. 0P0처럼 소수 양쪽에 0이 있는 경우 P0처럼 소

programmers.co.kr

 

생각보다 오래걸렸던 문제..

자바에서는 소수를 구할때  i*i <= k 를 하면 시간초과가 나는구나.

Math.sqrt(k) 를 쓰는 버릇을 들이도록 하자!

import java.util.*;
class Solution {
   public boolean checkPrime(long k) {
        if(k==1) return false;
        else if(k==2) return true;
        int limit = (int) Math.sqrt(k);
        for(int i=2; i<=limit; ++i) {
            if(k % i == 0) {
                return false;
            }
        }
        return true;
    }
  public int solution(int n, int k) {
        int answer = 0;

        String temp[] = Integer.toString(n, k).split("0");
        for (int i=0; i<temp.length; i++) {
            if(temp[i].length() > 0 && checkPrime(Long.parseLong(temp[i]))) answer++;
        }
         return answer;
    }
}

 

 

 

 

 

반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2026/04   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30
글 보관함