📍 문제 설명
https://programmers.co.kr/learn/courses/30/lessons/92335
코딩테스트 연습 - k진수에서 소수 개수 구하기
문제 설명 양의 정수 n이 주어집니다. 이 숫자를 k진수로 바꿨을 때, 변환된 수 안에 아래 조건에 맞는 소수(Prime number)가 몇 개인지 알아보려 합니다. 0P0처럼 소수 양쪽에 0이 있는 경우 P0처럼 소
programmers.co.kr
💡 접근
진수 변환 후 소수 판별하여 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 |