https://school.programmers.co.kr/learn/courses/30/lessons/92335
이 문제를 풀기 위해선 우선 아래와 같이 n진수를 구하는 방법부터 알아야 한다.
def solution(n, q):
rev_base = ''
while n > 0:
n, mod = divmod(n, q)
rev_base += str(mod)
return rev_base[::-1]
# 역순인 진수를 뒤집어 줘야 원래 변환 하고자하는 base가 출력
print(solution(45, 3))
https://kwanghori.tistory.com/15
이후는 0으로 split해준 word안에서 소수를 찾고 cnt+=1해줘가면 된다!
def solution(n, k):
word=""
while n: # 숫자를 k진법으로 변환
word = str(n%k)+word
n=n//k
word=word.split("0") # 변환된 숫자를 0을 기준으로 나눈다.
count=0
for w in word:
if len(w)==0: # 만약 0또는 1이거나 빈공간이라면 continue를 통해 건너뛴다.
continue
if int(w)<2:
continue
sosu=True
for i in range(2,int(int(w)**0.5)+1): # 소수찾기
if int(w)%i==0:
sosu=False
break
if sosu:
count+=1
return count
'코테 준비 > 프로그래머스' 카테고리의 다른 글
[level 2] 점 찍기 (0) | 2023.05.26 |
---|---|
[level 2] 택배상자 (0) | 2023.05.23 |
[level 2] 피로도 (0) | 2023.05.13 |
[level 2] n^2 배열 자르기 (0) | 2023.05.13 |
[level 1] 대충 만든 자판 (0) | 2023.05.10 |