Notice
Recent Posts
Recent Comments
Link
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Archives
Today
Total
관리 메뉴

0과 1 사이

[파이썬(python)] 2022 카카오 블라인드 공채 k진수에서 소수 개수 구하기 본문

코딩테스트

[파이썬(python)] 2022 카카오 블라인드 공채 k진수에서 소수 개수 구하기

고후 2022. 3. 9. 16:55

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

 

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

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

programmers.co.kr

이 문제는 옛날에 소수 판별 알고리즘을 구현했던 것이 기억나서 쉽게 풀었다.

 

import math
def change(n, k):
    #k 진수로 변환. 결과는 string
    string = ''
    q, r = divmod(n, k)
    if q == 0 :
        return string + str(r) 
    else :
        return change(q, k) + str(r)

def isprime(n):
    #n이 소수인지 판별하는 알고리즘
    if n == 1:
        return False
    
    for i in range(2, int(math.sqrt(n))+1):
        if n % i == 0:
            return False
        
    return True
    
def solution(n, k):
    answer = 0
    change_k = change(n, k)
    
    p = change_k.split('0')
    
    p = [int(v) for v in p if v]
    #공백제거
    
    for i in p:
        if isprime(i):
            #소수이면
            answer += 1
    
    
    return answer
Comments