[JAVA 문제 풀이] 337. k진수에서 소수 개수 구하기

프로그래머스 (92335)
Stupefyee's avatar
Jun 24, 2025
[JAVA 문제 풀이] 337. k진수에서 소수 개수 구하기
notion image
 

내가 작성한 코드

class Solution { public int solution(int n, int k) { int answer = 0; String str = Integer.toString(n, k); // k진수 변환 String[] arr = str.split("0"); // 0로 분리 for (String s : arr) { if (isPrime(s)) { answer++; } } return answer; } // 소수 판별 메서드 private boolean isPrime(String str) { // 공백 걸러내기 if (str.length() == 0) return false; // Long타입으로 변환 >> k진수 변환시 길이가 길어지는 경우가 있음 Long num = Long.parseLong(str); // 1은 소수가 아님 if (num == 1) return false; // 소수 판별 for (Long i = 2L; i <= Math.sqrt(num); i++) { if (num % i == 0) return false; } return true; } }
 

다른 사람의 코드

class Solution { public int solution(int n, int k) { int ans = 0; String temp[] = Integer.toString(n, k).split("0"); // k진수 변환 후 0을 기준으로 배열화 Loop: for (String t : temp) { if (t.length() == 0) continue; // 0이라면 continue long a = Long.parseLong(t); // long형으로 변환 if (a == 1) continue; // 1이라면 continue >> 1은 소수 아님 for (int i = 2; i <= Math.sqrt(a); i++) if (a % i == 0) // 나눠진 경우 >> 소수가 아닐 때 continue Loop; // Loop 반복문으로 이동 ans++; } return ans; } }
 
Share article

stupefyee