728x90
반응형
문제
문제 설명 양의 정수 n이 주어집니다.
이 숫자를 k진수로 바꿨을 때, 변환된 수 안에 아래 조건에 맞는 소수(Prime number)가 몇 개인지 알아보려 합니다.
- 0P0처럼 소수 양쪽에 0이 있는 경우
- P0처럼 소수 오른쪽에만 0이 있고 왼쪽에는 아무것도 없는 경우
- 0P처럼 소수 왼쪽에만 0이 있고 오른쪽에는 아무것도 없는 경우
- P처럼 소수 양쪽에 아무것도 없는 경우 단, P는 각 자릿수에 0을 포함하지 않는 소수입니다.
- 예를 들어, 101은 P가 될 수 없습니다.
정수 n과 k가 매개변수로 주어집니다. n을 k진수로 바꿨을 때, 변환된 수 안에서 찾을 수 있는 위 조건에 맞는 소수의 개수를 return 하도록 solution 함수를 완성해 주세요.
코드
def isPrime(n):
if n == 1:
return False
for i in range(2, int(n ** 0.5) + 1):
if n % i == 0:
return False
return True
def solution(n, k):
answer = 0
k_base = ''
while n > 0:
k_base = str(n%k) + k_base
n = n // k
if k_base and '0' not in k_base:
if isPrime(int(k_base)):
return 1
else:
while '0' in k_base:
e = k_base.find('0')
if e == 0:
k_base = k_base[1:]
continue
if isPrime(int(k_base[:e])):
answer += 1
k_base = k_base[e+1:]
if k_base and isPrime(int(k_base)):
answer += 1
return answer
풀이 참고
def isPrime(n):
if n == 1:
return 0
for i in range(2, int(n ** 0.5) + 1):
if n % i == 0:
return 0
return 1
def solution(n, k):
answer = 0
k_base = ''
while n > 0:
k_base = str(n%k) + k_base
n = n // k
for num in k_base.split('0'):
if not num:
continue
else:
answer += isPrime(int(num))
return answer
728x90
반응형
'코딩테스트' 카테고리의 다른 글
[프로그래머스 Lv.2] 카카오 블라인드 채용 - 방금 그 곡 (+34번 케이스 오류) (2) | 2024.12.16 |
---|---|
[프로그래머스 Lv.2] 카카오 블라인드 채용 - n진수 게임] (구현 쉬움) (3) | 2024.12.14 |
[프로그래머스 Lv.2] 뒤에 있는 큰 수 찾기 (0) | 2024.12.13 |
[프로그래머스 Lv.2] 타겟 넘버 (DFS) (1) | 2024.12.12 |
[프로그래머스 Lv.2] 2022 카카오 Tech 인턴쉽 - 두 큐 합 같게 만들기 (2) | 2024.12.12 |