From 4ff3d3e48f2369ef546cba14559fafc792d738c3 Mon Sep 17 00:00:00 2001 From: rl544 <111494264+rl544@users.noreply.github.com> Date: Wed, 4 Jan 2023 20:56:15 +0900 Subject: [PATCH] =?UTF-8?q?uploaded=20at=202023.=201.=204.=20=EC=98=A4?= =?UTF-8?q?=ED=9B=84=208:56:15?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../k진수에서 소수 개수 구하기/solution.java | 50 +++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 programmers/k진수에서 소수 개수 구하기/solution.java diff --git a/programmers/k진수에서 소수 개수 구하기/solution.java b/programmers/k진수에서 소수 개수 구하기/solution.java new file mode 100644 index 0000000..d827ff5 --- /dev/null +++ b/programmers/k진수에서 소수 개수 구하기/solution.java @@ -0,0 +1,50 @@ +// [문제 링크]: https://school.programmers.co.kr/learn/courses/30/lessons/92335 + +import java.lang.StringBuilder; +class Solution { + private String trans(int n, int k){ + StringBuilder sb = new StringBuilder(); + while(n>k){ + sb.append(n%k); + n = n/k; + } + sb.append(n); + return sb.reverse().toString(); + } + private boolean isPrime(Double i){ + int temp = 0; + //System.out.println(i+"가 들어왔다 체크하자."); + for(Double a = 1D; a <= Math.sqrt(i); a++){ + if(i%a==0) temp++; + if(temp>1) break; + } + return (i!=1&&temp==1); + } + + private int chkPrm(String s){ + int temp, ans = 0; + StringBuilder sb = new StringBuilder(); + for(char a : s.toCharArray()){ + temp = Character.getNumericValue(a); + if(temp != 0) sb.append(temp); + else { + if(sb.length()>0 && isPrime(Double.parseDouble(sb.toString()))) ans++; + //System.out.println(sb); + sb.setLength(0); + } + } + if(sb.length()!=0){ + if(sb.length()>0 && isPrime(Double.parseDouble(sb.toString()))) ans++; + //System.out.println(sb); + sb.setLength(0); + } + return ans; + } + + public int solution(int n, int k) { + int answer = -1; + String t = trans(n,k); + //System.out.println(t); + return chkPrm(t); + } +} \ No newline at end of file