https://programmers.co.kr/learn/courses/30/lessons/92335
코딩테스트 연습 - k진수에서 소수 개수 구하기
문제 설명 양의 정수 n이 주어집니다. 이 숫자를 k진수로 바꿨을 때, 변환된 수 안에 아래 조건에 맞는 소수(Prime number)가 몇 개인지 알아보려 합니다. 0P0처럼 소수 양쪽에 0이 있는 경우 P0처럼 소
programmers.co.kr
처음에 문제를 제대로 이해 못 해서 당황했다
그냥 해당 진수로 변경하고, 0이 나올 때마다 그 앞자리가 소수인지 확인하면 된다.
나의 풀이
import math
def is_prime_number(x):
if x < 2 :
return False
for i in range(2, int(math.sqrt(x)) + 1):
if x % i == 0:
return False
return True
def change(n, q):
rev_base = ''
while n > 0:
n, mod = divmod(n, q)
rev_base += str(mod)
return rev_base[::-1]
def solution(n, k):
answer = 0
n = change(n, k)
prime = ''
for num in n:
if num == '0':
if prime != '' and is_prime_number(int(prime)):
answer += 1
prime = ''
else:
prime += num
if prime != '' and is_prime_number(int(prime)):
answer += 1
return answer
'Programming > Programmers' 카테고리의 다른 글
[프로그래머스] 주차 요금 계산(Python) (0) | 2022.01.23 |
---|---|
[프로그래머스] 양궁대회 (Python) (0) | 2022.01.23 |
[프로그래머스] 신고 결과 받기 (Python) (0) | 2022.01.19 |
탑 프로그래머스 ..! (4) | 2022.01.13 |
[프로그래머스] 무지의 먹방 라이브 (Python) (0) | 2021.12.28 |
댓글