자바/코딩테스트
[프로그래머스] k진수에서 소수 개수 구하기 - Java(자바)
대전집주인
2024. 3. 28. 17:50
728x90
SMALL
문제 이해
- 정수 n을 k진수로 변환시켜야 한다.
- n은 1,000,000 으로 int형으로 처리 불가 long 타입으로 변환처리 해야한다.
- String 변수 temp에 k진수로 바꾸어서 만든다.
- 0이 앞뒤로 존재하면 소수인지 체크해야함으로 split("0") 으로 배열 생성
- 0000 0이 연속으로 나오면 배열에 "" 공백이 들어감으로 공백체크 필수
- 소수 판단하는 함수에도 long타입으로 변경후 소수 판단
class Solution {
public int solution(long n, int k) {
int answer = 0;
String temp = "";
while(n > 0){
temp = Long.toString(n%k) + temp;
n /= k;
}
String[] num = temp.split("0");
for(int i = 0; i<num.length; i++){
if("".equals(num[i])){
continue;
}
if(prime(Long.parseLong(num[i]))){
answer++;
}
}
return answer;
}
//소수 판단
static boolean prime(long n) {
if(n<2) return false;
for(long i=2; i*i<=n; i++) {
if(n % i == 0) return false;
}
return true;
}
}
728x90
LIST