상세 컨텐츠

본문 제목

k진수에서 소수 개수 구하기 (2022 KAKAO BLIND RECRUITMENT)

프로그래머스 코딩테스트 풀이

by 발발개발 2022. 7. 29. 15:39

본문

원본 : https://school.programmers.co.kr/learn/courses/30/lessons/92335

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

풀이

class Solution {
    public int solution(int n, int k) {
        int primeCnt = 0;
        String strN = fn(n, k);

        for (String strP : strN.split("0+")) {
            if (!strP.isEmpty() && isPrime(Long.parseLong(strP))) {
                primeCnt++;
            }
        }

        return primeCnt;
    }

    public String fn(int num, int k) {
        StringBuilder sb = new StringBuilder();

        while (num > 0) {
            sb.append(num % k);
            num /= k;
        }

        return sb.reverse().toString();
    }

    public boolean isPrime(long num) {
        if (num < 2) {
            return false;
        }

        for (long i = 2; i <= Math.sqrt(num); i++) {
            if (num % i == 0) {
                return false;
            }
        }

        return true;
    }
}

'프로그래머스 코딩테스트 풀이' 카테고리의 다른 글

숫자의 표현 (연습문제)  (0) 2022.08.01
숫자 블록 (연습문제)  (0) 2022.07.29
멀리 뛰기 (연습문제)  (0) 2022.07.29
땅따먹기 (연습문제)  (0) 2022.07.29
다음 큰 숫자 (연습문제)  (0) 2022.07.29

관련글 더보기

댓글 영역