https://school.programmers.co.kr/learn/courses/30/lessons/92335
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
import math
def solution(n, k):
answer = 0
# 형변환
new_n = ''
while(n > 0):
new_n = str(n%k) + new_n
n = n//k
# 0으로 구분짓고 공백과 1 제거
nums = new_n.split('0')
remove = ['', '1']
nums = [int(i) for i in nums if i not in remove]
# 소수 판별 코드
def p_num(x):
for i in range(2, int(math.sqrt(x)+1)):
if x % i == 0:
return False
return True
for i in nums:
if p_num(i):
answer += 1
return answer
# n을 k진법으로 나타낸 문자열 반환
def conv(n, k):
s = ''
while n:
s += str(n%k)
n //= k
return s[::-1]
# n이 소수인지 판정
def isprime(n):
if n <= 1: return False
i = 2
while i*i <= n:
if n%i == 0: return False
i += 1
return True
def solution(n, k):
s = conv(n,k)
cnt = 0
for num in s.split('0'):
if not num: continue # 빈 문자열에 대한 예외처리
if isprime(int(num)): cnt += 1
return cnt
'◦ Algorithm > Python' 카테고리의 다른 글
백준 촌수계산 2644 DFS (0) | 2023.04.04 |
---|---|
백준 토마토 7569 BFS (0) | 2023.03.31 |
백준 2060 바이러스 DFS (0) | 2023.03.29 |
프로그래머스 푸드 파이트 대회 문자열 뒤집기 (0) | 2023.03.28 |
프로그래머스 타겟 넘버 BFS (0) | 2023.03.28 |