문제 설명 및 제한사항
아이디어 및 해결 방법
코드
def kary(n, k):
res = []
while n > 0:
n, mod = divmod(n, k)
res.append(str(mod))
return ''.join(res[::-1])
def isprime(n):
if n == 1:
return False
if n == 2:
return True
for i in range(2, int(n**0.5) + 1):
if n % i == 0:
return False
return True
def solution(n, k):
# 문제가 복잡하게 생겼을 뿐 n진법 문자열을 0을 기준으로 split한 후
# 소수 개수를 세면 되는 문제입니다.
return sum(isprime(int(num)) for num in kary(n, k).split('0') if num != '')
Python
복사
출처
프로그래머스 코딩테스트 연습 https://school.programmers.co.kr/learn/challenges