[프로그래머스] k진수에서 소수 개수 구하기(92335)

lhs's avatar
Nov 17, 2024
[프로그래머스] k진수에서 소수 개수 구하기(92335)
 

1. 문제 풀이 아이디어

  • 숫자를 k진수의 문자열로 바꾼 후, 0을 기준으로 나누어 소수를 판별하면 문제를 해결할 수 있다.

2. 나의 정답 코드

class Solution { public int solution(int n, int k) { int answer = 0; String[] split = Integer.toString(n, k).split("0"); for (String s : split) { if (s.isEmpty()) continue; long l = Long.parseLong(s); if (isPrime(l)) answer++; } return answer; } private boolean isPrime(long n) { if (n == 1) return false; for (long l = 2; l * l <= n; l++) { if (n % l == 0) return false; } return true; } }

3. 정리

  • Integer.toString 메서드를 사용하여 k 진수의 문자열로 바꾼 후, “0”을 기준으로 문자열을 나누어 split 배열에 저장한다.
  • split 배열을 순회하여 문자열이 비지 않은 경우, long으로 변환한 후 isPrime 메서드를 사용하여 소수를 판별한다.
  • 소수일 경우 answer1씩 증가시켜 문제를 해결한다.
 
Share article

LHS's Study Space