https://school.programmers.co.kr/learn/courses/30/lessons/92335
문제 설명이 좀 불친절했다.
예시를 들어준 436674에서 101이 왜 0P0을 만족할 수 없는지 이해할 수 없었다.
역시나 입출력 예를 확인했고 여전히 이해할 수 없는 채로 문제를 풀었다.
def convert_notation(n, base):
T = "0123456789ABCDEF"
q, r = divmod(n, base)
return convert_notation(q, base) + T[r] if q else T[r]
def solution(n, k):
answer = 0
a = convert_notation(n,k)
a = list(a.split('0'))
for i in range(len(a)):
isTrue = True
if len(a[i]) == 0:
continue
if int(a[i]) < 2:
continue
zz = int(a[i])
for i in range(2,zz):
if zz % i == 0:
isTrue = False
break
if isTrue:
answer += 1
return answer
처음 작성한 코드는 무난하게 통과하나 싶었지만 테케1에서 시간아웃으로 실패했다.
0으로 나눈 후 for문에는 아무런 문제가 없어보였고 진수로 변경하는 코드를 수정했다.
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
'알고리즘' 카테고리의 다른 글
프로그래머스) 압축-python (0) | 2023.01.24 |
---|---|
프로그래머스 (0) | 2023.01.23 |
프로그래머스)튜플 -python (0) | 2023.01.20 |
프로그래머스) 괄호 회전하기-python (0) | 2023.01.20 |
프로그래머스)[1차] 캐시-python (0) | 2023.01.19 |