๐Ÿ—๏ธ Algorithm/โฌ› ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค

โฌ› [Programmers] [Python] [2022 KAKAO BLIND RECRUITMENT] [Level2] K์ง„์ˆ˜์—์„œ ์†Œ์ˆ˜ ๊ฐœ์ˆ˜ ๊ตฌํ•˜๊ธฐ

Dbswnstjd 2023. 4. 12. 14:02

๋ฌธ์ œ

https://school.programmers.co.kr/learn/challenges?order=acceptance_desc&statuses=unsolved&levels=2%2C3%2C1&languages=python3 

 

์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์—ฐ์Šต | ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์Šค์ฟจ

๊ฐœ๋ฐœ์ž ์ทจ์—…์˜ ํ•„์ˆ˜ ๊ด€๋ฌธ ์ฝ”๋”ฉํ…Œ์ŠคํŠธ๋ฅผ ์ฒ ์ €ํ•˜๊ฒŒ ์—ฐ์Šตํ•˜๊ณ  ๋Œ€๋น„ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฌธ์ œ๋ฅผ ์ด๋ง๋ผ! ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์—์„œ ์„ ๋ฐœํ•œ ๋ฌธ์ œ๋กœ ์œ ํ˜•์„ ํŒŒ์•…ํ•˜๊ณ  ์‹ค๋ ฅ์„ ์—…๊ทธ๋ ˆ์ด๋“œํ•ด ๋ณด์„ธ์š”!

school.programmers.co.kr

ํ’€์ด

# ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค 2๋‹จ๊ณ„ - k์ง„์ˆ˜์—์„œ ์†Œ์ˆ˜ ๊ฐœ์ˆ˜ ๊ตฌํ•˜๊ธฐ
import math
def isPrime(n):
    if n == 1:
        return False
    for i in range(2, int(math.sqrt(n)) + 1):
        if n % i == 0:
            return False
    return True

def k_digit(n, k):
    rev_base = ''
    while n > 0:
        n, mod = divmod(n,k)    
        rev_base += str(mod)
    return rev_base[::-1]

def solution(n, k):
    answer = 0
    k_digit_number = k_digit(n,k)
    n_list = k_digit_number.split('0')
    for i in n_list:
        if i != "":
            if isPrime(int(i)):
                answer += 1    
    return answer
print(solution(437674, 3))

n์„ k์ง„์ˆ˜๋กœ ๋ฐ”๊พธ๋Š” ํ•จ์ˆ˜๋ฅผ k_digit ์ด๋ผ๊ณ  ๋งŒ๋“ค๊ณ  

n์ด ์†Œ์ˆ˜์ธ์ง€ ํŒ๋ณ„ํ•˜๋Š” ํ•จ์ˆ˜๋ฅผ isPrime์„ ์„ ์–ธํ•˜์˜€๋‹ค.