Post

Programmers. K prime

k진수에서 소수 개수 구하기

  • 2022 kakao blind recruitment
  • 정답률: 58%
  • 2023.03.08
  • 17:45 ~ 18:15 (30 min)
  • 후기: 주어진 수를 k진수로 변환하고, 소수인지 체크하는 코드까지는 어렵지 않게 구현하였지만, test time 때 1번 시간초과 문제를 해결하는데 시간이 조금 걸렸다. 방법은 소수인지 판별을 할때 x만큼이 아닌 x의 제곱근까지만 고려해주는 것이 핵심이었다.

Code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
def is_prime(x):
    if x == 1:
        return False
    for i in range(2,int(x**(1/2))+1):
        if x%i == 0:
            return False
    return True

def solution(n, k):
    answer = 0
    rev_base = ''
    n_num = ''
    chk_prime = False
    
    while n > 0:
        rev_base += str(n%k)
        n = n//k
    
    rev_base = rev_base[::-1]
    
    n_num = rev_base.split('0')
  
    for i in n_num:
        if i == '':
            continue
        chk_prime = is_prime(int(i))
        if chk_prime == True:
            answer += 1
        chk_prime = False
    return answer
This post is licensed under CC BY 4.0 by the author.