문제 링크: https://school.programmers.co.kr/learn/courses/30/lessons/92335
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
회고:
1. 값이 정수 범위를 넘을 수 있다는 걸 놓쳤다.
2. 에라토스테네스의 체 풀이만 기억하고 루트 n 까지 나누어서 나머지 0을 확인하는 방법을 몰랐다.
코드:
class Solution {
public int solution(int n, int k) {
int answer = 0;
String[] split = Integer.toString(n, k).split("0");
for (String str : split) {
if (str.length() > 0 && !str.equals("1")) {
if(isPrime(str)) answer++;
}
}
return answer;
}
private boolean isPrime(String str) {
long val = Long.parseLong(str);
for (long i = 2; i * i <= val; i++) {
if(val % i == 0) return false;
}
return true;
}
}
'PS > 프로그래머스' 카테고리의 다른 글
프로그래머스 2020 KAKAO BLIND RECRUITMENT - 자물쇠와 열쇠[JAVA] (0) | 2023.11.09 |
---|---|
프로그래머스 2023 KAKAO BLIND RECRUITMENT - 개인정보 수집 유효기간[JAVA] (0) | 2023.11.06 |
프로그래머스 2020 KAKAO BLIND RECRUITMENT - 괄호 변환[JAVA] (1) | 2023.10.31 |
프로그래머스 2020 KAKAO BLIND RECRUITMENT - 문자열 압축[JAVA] (0) | 2023.10.30 |
프로그래머스 2019 KAKAO BLIND RECRUITMENT - 길 찾기 게임[JAVA] (0) | 2023.10.28 |