honey_pot
[python] k진수에서 소수 개수 구하기 본문
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(2, int(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