📍 문제 설명
https://programmers.co.kr/learn/courses/30/lessons/92335
💡 접근
진수 변환 후 소수 판별하여 answer를 증가시켜주면 되는 문제였다.
String의 범위가 int 범위를 넘을 수 있으니 long으로 받았다.
👩💻 코드
import java.io.*;
public class Solution {
public int solution(int n, int k) {
int answer = 0;
String ans = "";
while(n > 0) {
ans = (n % k) + ans;
n /= k;
}
System.out.println(ans);
String[] arr = ans.split("0");
for(int i = 0; i < arr.length; i++) {
if(!arr[i].equals("") && prime(arr[i])) answer++;
}
return answer;
}
public boolean prime(String s) {
long n = Long.parseLong(s);
if(n <= 1) return false;
else if(n == 2) return true;
for(int i = 2; i <= Math.sqrt(n); i++) {
if(n % i == 0) return false;
}
return true;
}
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
Solution s = new Solution();
int n = 437674;
int k = 3;
s.solution(n, k);
}
}
'Algorithm > programmers' 카테고리의 다른 글
[2018 카카오 블라인드 3차]파일명 정렬 (0) | 2022.07.06 |
---|---|
[2022 카카오 블라인드]주차 요금 계산 (0) | 2022.05.03 |
[2018 카카오 블라인드 3차]압축 (0) | 2022.04.14 |
[2018 카카오 블라인드 3차]방금그곡 (0) | 2022.04.13 |
[2018 카카오 블라인드 1차]캐시 (0) | 2022.04.12 |