문제 원본 : https://programmers.co.kr/learn/courses/30/lessons/92335
코딩테스트 연습 - k진수에서 소수 개수 구하기
문제 설명 양의 정수 n이 주어집니다. 이 숫자를 k진수로 바꿨을 때, 변환된 수 안에 아래 조건에 맞는 소수(Prime number)가 몇 개인지 알아보려 합니다. 0P0처럼 소수 양쪽에 0이 있는 경우 P0처럼 소
programmers.co.kr
public class Solution {
public int solution(int n, int k) {
int answer = 0;
StringBuffer tmp = new StringBuffer();
while (n != 0) {
tmp.append(n % k);
n /= k;
}
String rev = tmp.reverse().toString();
String[] arr = rev.split("0");
for (String s : arr) {
if (s.length() == 0) {
continue;
}
if (isPrime(Long.parseLong(s))) {
++answer;
}
}
return answer;
}
boolean isPrime(long n) {
if (n == 1L) {
return false;
}
for (long i = 2L; i * i <= n; ++i) {
if (n % i == 0) {
return false;
}
}
return true;
}
}
- 2022 카카오 블라인드 코딩 테스트 2번
- 개인적으로 1번보다 더 쉬웠다.
- 진법 변환 후 0으로 split 후 소수인지 판별
'알고리즘 > 프로그래머스' 카테고리의 다른 글
| [프로그래머스] 2022 KAKAO BLIND RECRUITMENT > 4. 양궁대회 (0) | 2022.03.13 |
|---|---|
| [프로그래머스] 2022 KAKAO BLIND RECRUITMENT > 3. 주차 요금 계산 (0) | 2022.02.13 |
| [프로그래머스] 2022 KAKAO BLIND RECRUITMENT > 1. 신고 결과 받기 (0) | 2022.02.13 |