https://school.programmers.co.kr/learn/courses/30/lessons/92335
ํ๋ก๊ทธ๋๋จธ์ค
์ฝ๋ ์ค์ฌ์ ๊ฐ๋ฐ์ ์ฑ์ฉ. ์คํ ๊ธฐ๋ฐ์ ํฌ์ง์ ๋งค์นญ. ํ๋ก๊ทธ๋๋จธ์ค์ ๊ฐ๋ฐ์ ๋ง์ถคํ ํ๋กํ์ ๋ฑ๋กํ๊ณ , ๋์ ๊ธฐ์ ๊ถํฉ์ด ์ ๋ง๋ ๊ธฐ์ ๋ค์ ๋งค์นญ ๋ฐ์ผ์ธ์.
programmers.co.kr
n์ k์ง์๋ก ๋ณํํ๊ณ (n์ด 0์ด ๋ ๋๊น์ง k๋ก ๋๋๋ค.),
0์ ํฌํจํ์ง ์๋ ์๋ง ๋ถ๋ฆฌํ์ฌ(split('0'))
์์์ธ์ง ํ๋ณํด์ฃผ๋ฉด ๋๋ค.
์ฒ์์ findPrime์์ ๋ฐ๋ณต๋ฌธ์ ๋ฒ์๋ฅผ (2, num//2)๋ก ์ค์ ํด์คฌ์๋๋ฐ, tc1์์ ์๊ฐ ์ด๊ณผ๊ฐ ๋ฌ๋ค.
๊ทธ๋์ ๋ฒ์๋ฅผ ๋ค์ (2, ์ ๊ณฑ๊ทผ+1)๋ก ์ค์ ํด์คฌ๋ค.
# ํ๋ก๊ทธ๋๋จธ์ค 92335: k์ง์์์ ์์ ๊ฐ์ ๊ตฌํ๊ธฐ (2022 KAKAO BLIND RECRUITMENT)
def findPrime(num): # ์์ ์ฐพ๊ธฐ
if num == 1:
return False
for i in range(2, int(num**(1/2))+1):
if num % i == 0:
return False
return True
def solution(n, k):
s = ''
while n > 0: # k์ง์๋ก ๋ณํ
s = str(n % k) + s
n //= k
answer = 0
for i in s.split('0'):
if i != '':
if (findPrime(int(i))):
answer += 1
return answer