상상쓰

[프로그래머스] k진수에서 소수 개수 구하기 본문

Coding Test

[프로그래머스] k진수에서 소수 개수 구하기

상상쓰 2022. 1. 23. 22:23

https://programmers.co.kr/learn/courses/30/lessons/92335

 

코딩테스트 연습 - k진수에서 소수 개수 구하기

문제 설명 양의 정수 n이 주어집니다. 이 숫자를 k진수로 바꿨을 때, 변환된 수 안에 아래 조건에 맞는 소수(Prime number)가 몇 개인지 알아보려 합니다. 0P0처럼 소수 양쪽에 0이 있는 경우 P0처럼 소

programmers.co.kr

 

1. k진수를 구한다.

2. P는 각 자릿수에 '0' 을 포함하지 않고 양옆에 '0' 또는 아무것도 없어야 하므로 '0' 을 기준으로 쪼개어 배열을 만든다.

3. 배열 중 소수인 원소의 개수를 구한다.

 

import math

def prime(n):
    answer = True
    
    for i in range(2, int(math.sqrt(n)) + 1):
        if n % i == 0:
            answer = False
            break
    
    return answer

def solution(n, k):
    answer = 0
    P = ''
    
    while n > 0:
        P = str(n % k) + P
        n //= k
    
    array = P.split('0')
    
    for i in array:
        if i not in ['1', '']:
            if prime(int(i)):
                answer += 1
    
    return answer

print(solution(437674, 3)) # 3

 

 

'Coding Test' 카테고리의 다른 글

[프로그래머스] 양궁대회  (0) 2022.02.20
[프로그래머스] 주차 요금 계산  (0) 2022.02.12
[프로그래머스] 신고 결과 받기  (0) 2022.01.19
[백준] Fly me to the Alpha Centauri  (2) 2022.01.14
[백준] 동전 1  (0) 2021.11.18
Comments