https://school.programmers.co.kr/learn/courses/30/lessons/92335#qna
프로그래머스
SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
효율적으로 소수구하기
int 초과시 long
import java.util.*;
class Solution {
public int solution(int n, int k) {
int answer = 0;
String converted = convert(n, k);
String[] arr = converted.split("[0]+"); // 0,00, 000,...
for(int i = 0; i < arr.length; i++) {
boolean isPrime = checkIsPrime(arr[i]);
answer += isPrime ? 1 : 0;
}
return answer;
}
static boolean checkIsPrime(String value) {
long n = Long.parseLong(value);
if(n <= 1)return false; // 1, 0 이면 소수 아님
if(n == 2 || n == 3)return true; // 소수임
for (long i = 2; i <= Math.sqrt(n); i++) //Math.sqrt(n)
if (n % i == 0)
return false;
return true;
}
static String convert(int n, int k){
if(n == 0) {return "0";}
StringBuilder sb = new StringBuilder();
while(n > 0) {
sb.insert(0, n % k);
n /= k;
}
return sb.toString();
}
}
[프로그래머스] 롤케이크 (0) | 2025.02.03 |
---|---|
[프로그래머스] 프로세스 (0) | 2025.02.03 |
[프로그래머스] [1차] 뉴스 클러스터링 (0) | 2025.02.01 |
[프로그래머스] 전화번호 목록 (0) | 2025.01.31 |
[프로그래머스] 광물 캐기 (0) | 2025.01.31 |