어떠한 정수 N이 있을 때 N을 k진수로 바꾸는 방법은 의외로 쉬웠다.
toString(N,k); 를 하게되면 N이 k 진수로 변환된 채로 문자열로 반횐되었다.
그리고 소수를 구하는 빠른 방법 중에서 내가 아는것은 제곱근까지의 나눗셈이었기 때문에 spilt을 활용하여 나온 문자열을 toLong 으로 변환하여 그 숫자를 제곱근 까지 나누어서 소수판별을 하였다.
import java.util.*;
class Solution {
public int solution(int n, int k) {
int answer = 0;
String number = Integer.toString(n,k);
String[] numbers = number.split("0");
for(String s : numbers){
if(s.equals("")) continue;
Long a = Long.parseLong(s);
boolean find = true;
if(a==1) continue;
for(int i = 2; i <= Math.sqrt(a); i++){
if(a%i==0){
find = false;
break;
}
}
if(find) answer++;
}
return answer;
}
}
Integer
-toString(a,b) : a를 b진수로 변환
Math
-sqrt(a) : a 의 제곱근을 반환
String
-split("a") : "a"라는 문자열을 기준으로 잘라서 String[]에 저장
Long
-parseLong : 문자열을 Long 형태로 변환
'Algorithm & Data Structures > Programers' 카테고리의 다른 글
Lv 2. 괄호 회전하기 (0) | 2024.06.26 |
---|---|
Lv 2. 게임 맵 최단거리 (0) | 2024.06.23 |
Lv 2. 타겟 넘버 (0) | 2024.06.20 |
Lv 2. 전화번호 목록 (0) | 2024.06.19 |
Lv 2. [1차] 뉴스 클러스터링 (0) | 2024.06.18 |