https://school.programmers.co.kr/learn/courses/30/lessons/92335
저는 구현을 통해 문제를 해결하였습니다.
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;
}
}
'알고리즘' 카테고리의 다른 글
프로그래머스 신고 결과 받기 (JAVA) (0) | 2023.08.08 |
---|---|
프로그래머스 주차 요금 계산 (JAVA) (0) | 2023.08.07 |
프로그래머스 코딩 테스트 공부(JAVA) (0) | 2023.08.05 |
프로그래머스 등산코스 정하기 (JAVA) (0) | 2023.08.04 |
프로그래머스 성격 유형 검사하기 (JAVA) (0) | 2023.08.03 |