Lv2. k진수에서 소수 개수 구하기

Hello·2022년 8월 5일
0

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

1. 풀이 설명

  1. n 을 k 진수로 변환한 후, '0' 으로 split() 하여 저장한다: converted
    (왼쪽/오른쪽/양쪽 에 0 이 있거나, 양쪽에 아무 수도 없어야 함)

  2. converted 에서 소수인 수의 개수를 반환한다.

2. 나의 풀이

def solution(n, k):
    answer = 0
    converted = dec_to(n, k).split('0')
    for num in converted:
        if num != '' and is_prime(int(num)):
            answer += 1
    return answer

def dec_to(n, base):
    result = ''
    while n > 0:
        n, mod = divmod(n, base)
        result += str(mod)
    return result[::-1]

def is_prime(n):
    if n < 2:
        return False
    
    for i in range(2, int(n ** 0.5) +1):
        if n % i == 0:
            return False
    return True

3. 배운점

  1. 1은 소수가 아니다. (참고문제1)

  2. 다른 코드

def solution(n, k):
    answer = 0
    converted = dec_to(n, k).split('0')
    return sum(1 for num in converted if num != '' and is_prime(int(num)))
profile
안녕하세요 :)

0개의 댓글