상세 컨텐츠

본문 제목

[프로그래머스] k진수에서 소수 개수 구하기

💯ProblemSolving/문제 풀이-Java

by :부셔져버린개발자 2025. 2. 1. 13:06

본문

       문제 요약        

- 문제

 

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

 

프로그래머스

SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr

 

 

         아이디어        

효율적으로 소수구하기

int 초과시 long 

 

         소스코드        

import java.util.*;

class Solution {
    public int solution(int n, int k) {
        int answer = 0;
        String converted = convert(n, k);
        String[] arr = converted.split("[0]+"); // 0,00, 000,... 
        
        for(int i = 0; i < arr.length; i++) {
            boolean isPrime = checkIsPrime(arr[i]);
            answer += isPrime ? 1 : 0;
        }
        return answer;
    }
    
    static boolean checkIsPrime(String value) {
        long n = Long.parseLong(value);
        if(n <= 1)return false; // 1, 0 이면 소수 아님
        if(n == 2 || n == 3)return true; // 소수임
        for (long i = 2; i <= Math.sqrt(n); i++) //Math.sqrt(n)
            if (n % i == 0)
                return false;
        return true;
    }
  
    static String convert(int n, int k){
        if(n == 0) {return "0";}
        StringBuilder sb = new StringBuilder();
        while(n > 0) {
            sb.insert(0, n % k);
            n /= k; 
        }
        return sb.toString();
    }
}

 

 

728x90

관련글 더보기