k진수에서 소수 개수 구하기

심규원·2024년 8월 29일

https://school.programmers.co.kr/learn/courses/30/lessons/92335?language=java

class Solution {
    public static boolean isPrime(long num) {
        if (num < 2) return false;
        for (long i = 2; i <= Math.sqrt(num); i++) {
            if (num % i == 0) return false;
        }
        return true;
    }
    public int solution(int n, int k) {
        int answer = 0;
        
        String str = Integer.toString(n, k);
        StringBuilder stringBuilder = new StringBuilder();

        for(char ch : str.toCharArray()){
            if(ch == '0'){
                if(stringBuilder.length() != 0 && isPrime(Long.parseLong(stringBuilder.toString()))) answer++;
                stringBuilder.setLength(0);
            }else stringBuilder.append(ch);
        }

        if(stringBuilder.length() != 0 && isPrime(Long.parseLong(stringBuilder.toString()))) answer++;
        return answer;
    }
}

핵심은 0을 기준으로 잘라줘야 한다는것.

그래서 ch == '0' 일 때 조건 처리를 시작한다.

0개의 댓글