풀이 방법✏️
- 입력으로 주어진 수를
Integer.toString()
메소드로 K진수로 변환
split("0")
메소들르 통해 K진수로 변환한 문자열을 문제에서 주어진 조건에 따라 여러 덩어리로 구분
- 각 덩어리가 소수인지 판단 후 총 소수의 개수 반환
소스 코드(feat. 알찬 주석)⌨️
import java.io.*;
import java.util.*;
class Solution {
static int N, K;
static String changedNum;
public int solution(int n, int k) {
N = n;
K = k;
changedNum = Integer.toString(N, K);
String[] splitNums = changedNum.split("0");
int answer = 0;
for(String num : splitNums){
if(num.equals("")){
continue;
}
long temp = Long.parseLong(num);
if(isPrime(temp)){
answer++;
}
}
return answer;
}
private boolean isPrime(long num){
if(num == 1){
return false;
}
if(num == 2){
return true;
}
for(int i=2; i<=Math.sqrt(num); i++){
if(num % i == 0){
return false;
}
}
return true;
}
}