[프로그래머스 | Python] k진수에서 소수 개수 구하기

게으른 완벽주의자·2023년 2월 2일
0

프로그래머스

목록 보기
33/83
post-custom-banner

프로그래머스_k진수에서 소수 개수 구하기

2진법, 10진법 등 k진법으로 바꾸는 부분을 학습할 수 있는 문제였다

0을 기준으로 문자열을 split하면 0이 붙어있을 경우 빈 문자열이 list안에 들어가게 되므로 빈 문자열이 나오는 경우, 소수가 아닌 1이 들어있는 경우를 제외해주고 소수검정을 해주면 된다

import math
def isPrime(num):
    for i in range(2, int(math.sqrt(num))+1):
        if num%i==0:
            return False
    return True

def solution(n, k):
    answer = 0
    
    #k진법으로 바꾸기
    tmp = ''
    while n:
        tmp = str(n%k)+tmp
        n = n//k
        
    tmp = tmp.split('0')
    for t in tmp:
        #0으로 split하면 0이 2개가 붙어있을 경우 빈 공간이 생길 수 있음
        #1은 소수가 아니므로 제외
        if len(t)==0 or int(t)==1:
            continue
        if isPrime(int(t)):
            answer+=1    
    
    return answer
profile
데이터를 공부하고 있습니다
post-custom-banner

0개의 댓글