less than 1 minute read

문제 풀이 방식

문제 풀이 (Java)

class Solution {
    public int solution(int n, int k) {
        String n_k = toKBinary(n, k);
        int res = 0;
        String[] checks = n_k.split("0");
        
        for(String check : checks){
            if(check.equals("")) continue; 
            // 공백일때는 체크 안하고 넘어감
            
            Long tmp = Long.parseLong(check);
            if(isPrime(tmp)){
                res++;
            }
        }
        return res;
    }
    
    // K진수 변환
    public String toKBinary(int n, int k) {
        String res = "";
        while(n > 0) {
            res = n % k + res;
            n /= k;
        }
        return res;
    }
    
    // 소수 여부를 판정
    public boolean isPrime (long a){
        if(a <= 1) return false;
        
        for(int i = 2;i <= Math.sqrt(a);i++){
            if(a % i == 0) return false;
            
        }
        
        return true;
    }
}

Leave a comment