honey_pot

[python] k진수에서 소수 개수 구하기 본문

문제 풀이

[python] k진수에서 소수 개수 구하기

_tera_ 2022. 9. 18. 16:58

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


에라스토테네스의 체와 n진수 변환 방법을 알고 있다면 대체적으로 풀이는 떠올리기 쉬운듯 하다

split('0') 후에 '~~00~~'의 경우 '00' 사이에 빈 문자열인 ""가 발생할 수 있음을 캐치하지 못해서 value 에러가 뜬 건 if num 조건 추가해서 풀었다

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
def base(n,k): # n진수로 변환하는 함수
    base = ''
    while n >0:
        n, mod = divmod(n,k)
        base += str(mod)
    return base[::-1]
 
def prime(n): # 소수 판별 함수
    if n == 1 :
        return False
    for i in range(2int(n**0.5)+1):
        if n%i == 0:
            return False
    return True
 
def solution(n, k):
    base_n = base(n,k)
    lst = base_n.split('0'# 문제 조건에 따라 n진수로 변환된 값을 0을 기준으로 쪼갠다
    answer = 0
    for num in lst:
        if num and prime(int(num)): # 비어있는 문자열 "" 빼고 소수 판별
            answer += 1
    return answer
cs

빈 문자열 발생하는 경우

 

'문제 풀이' 카테고리의 다른 글

[Python] 점프와 순간 이동  (0) 2022.09.20
[Python] [3차] 압축  (0) 2022.09.20
[python] n진수 게임  (0) 2022.09.18
[python] 두 큐 합 같게 만들기(+투 포인터 방식)  (0) 2022.09.18
[python] N-Queen  (0) 2022.09.17
Comments