[Programmers / Level 2] 92335. k진수에서 소수 개수 구하기 (Java)

이하얀·2025년 3월 3일
0

🕊️ 프로그래머스

목록 보기
103/115

💡 Info




입출력 조건




입출력 예시




문제 이해


  • 주어진 숫자 n을 k진법으로 변환 -> 0을 기준으로 나눈 숫자들 중 소수 개수를 구하는 문제


알고리즘


풀이 시간 : 32분

  • n을 k진법으로 변환
  • 0을 기준으로 숫자 분리
  • 각 숫자에 대한 소수 판별(isPrime)
    • 2 미만 : 소수 아님
    • 2 : 소수
    • 짝수 : 소수 아님
    • 제곱근까지만 나눠서 소수 바로 판별
  • 소수가 맞으면 -> count++
import java.util.*;

class Solution {
    public int solution(int n, int k) {
        String[] arr = Integer.toString(n, k).split("0");
        int count = 0;

        for (String s : arr) {
            if (!s.isEmpty() && isPrime(Long.parseLong(s))) {
                count++;
            }
        }

        return count;
    }

    private boolean isPrime(long num) {
        if (num < 2) return false;
        if (num == 2) return true;
        if (num % 2 == 0) return false;

        for (long i = 3; i * i <= num; i += 2) {
            if (num % i == 0) return false;
        }
        return true;
    }
}


결과

profile
언젠가 내 코드로 세상에 기여할 수 있도록, Data Science&BE 개발 기록 노트☘️

0개의 댓글