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
'자바 > 코딩테스트' 카테고리의 다른 글
[프로그래머스] 방문 길이 - Java(자바) (1) | 2024.04.01 |
---|---|
[프로그래머스] [3차] 압축 - Java(자바) (1) | 2024.03.29 |
[프로그래머스] [1차]뉴스 클러스터링 - Java(자바) (0) | 2024.03.28 |
[프로그래머스] 피로도 - Java(자바) (0) | 2024.03.28 |
[프로그래머스] 튜플 - Java(자바) (0) | 2024.03.27 |