본문으로 바로가기

2022 KAKAO BLIND RECRUITMENT > K진수에서 소수 개수 구하기 


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

 

코딩테스트 연습 - k진수에서 소수 개수 구하기

문제 설명 양의 정수 n이 주어집니다. 이 숫자를 k진수로 바꿨을 때, 변환된 수 안에 아래 조건에 맞는 소수(Prime number)가 몇 개인지 알아보려 합니다. 0P0처럼 소수 양쪽에 0이 있는 경우 P0처럼 소

programmers.co.kr

 

https://tech.kakao.com/2022/01/14/2022-kakao-recruitment-round-1/

 

2022 카카오 신입공채 1차 온라인 코딩테스트 for Tech developers 문제해설

지난 2021년 9월 11일 토요일 오후 2시부터 7시까지 5시간 동안 2022 KAKAO BLIND RECRUITMENT 1차 코딩 테스트가 진행되었습니다. 테스트에는 총 7개의 문제가 출제되었으며, 개발 언어는 C++, Java, JavaScript, K

tech.kakao.com

 

 

문제에 대한 해설은 카카오 신입공채 테크블로그의 해설이 워낙 잘 설명되어 있으므로, 이 글로 대체하겠습니다.

 

	static Function<String, Long> stol = Long::parseLong;

    public static int solution(int n, int k) {
        String binaryString = Integer.toString(n, k);
        StringTokenizer st = new StringTokenizer(binaryString, "0");
        int cnt = 0;
        while (st.hasMoreTokens()) {
            long num = stol.apply(st.nextToken());
            if (isPrime(num)) {
                cnt++;
            }
        }
        return cnt;
    }


    private static boolean isPrime(long n) {
        if (n == 1) {
            return false;
        }
        for (int i = 2; (long) i * i <= n; i++) {
            if (n % i == 0) {
                return false;
            }
        }
        return true;
    }