알고리즘
프로그래머스 k진수에서 소수 개수 구하기 (JAVA)
박카스마시며코딩
2023. 8. 6. 18:59
https://school.programmers.co.kr/learn/courses/30/lessons/92335
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
저는 구현을 통해 문제를 해결하였습니다.
k진수로 변경 후 0을 기준으로 문자열을 나누고 각각의 문자열이 소수인지를 확인하였습니다.
class Solution {
public int solution(int n, int k) {
String s = changeString(n,k);
int answer = countPrime(s);
return answer;
}
private static String changeString(int n ,int k){
StringBuilder sb = new StringBuilder();
while(n > 0){
sb.append(n % k);
n /= k;
}
sb = sb.reverse();
return sb.toString();
}
private static int countPrime(String s){
String[] strArr = s.split("0");
int result = 0;
for(String str : strArr){
if(str.equals("") || str == null){
continue;
}
if(isPrime(Long.parseLong(str))){
result++;
}
}
return result;
}
private static boolean isPrime(long num){
if(num == 1){
return false;
}
for(int i = 2 ; i <= Math.sqrt(num) ; i++){
if(num % i == 0){
return false;
}
}
return true;
}
}