ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค - k์ง„์ˆ˜์—์„œ ์†Œ์ˆ˜ ๊ฐœ์ˆ˜ ๊ตฌํ•˜๊ธฐ

2022. 10. 18. 00:46ใ†ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค-Swift

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค - k์ง„์ˆ˜์—์„œ ์†Œ์ˆ˜ ๊ฐœ์ˆ˜ ๊ตฌํ•˜๊ธฐ

 

 

 ๋ฌธ์ œ ์„ค๋ช…

 

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

 

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค

์ฝ”๋“œ ์ค‘์‹ฌ์˜ ๊ฐœ๋ฐœ์ž ์ฑ„์šฉ. ์Šคํƒ ๊ธฐ๋ฐ˜์˜ ํฌ์ง€์…˜ ๋งค์นญ. ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์˜ ๊ฐœ๋ฐœ์ž ๋งž์ถคํ˜• ํ”„๋กœํ•„์„ ๋“ฑ๋กํ•˜๊ณ , ๋‚˜์™€ ๊ธฐ์ˆ  ๊ถํ•ฉ์ด ์ž˜ ๋งž๋Š” ๊ธฐ์—…๋“ค์„ ๋งค์นญ ๋ฐ›์œผ์„ธ์š”.

programmers.co.kr

 

 

 

 ๋‚˜์˜ ํ’€์ด

 

์—๋ผํ† ์Šคํ…Œ๋„ค์Šค์˜ ์ฒด๋ฅผ ์ด์šฉํ•ด๋ณด๊ณ , ๊ทธ๋ƒฅ ์ฃผ์–ด์ง„ ์ˆ˜๋งŒํผ๋งŒ ์†Œ์ˆ˜์˜ ๊ฐœ์ˆ˜๋ฅผ ์ฐพ์•„๋„ ๋ณด์•˜์ง€๋งŒ ์‹œ๊ฐ„์ดˆ๊ณผ๊ฐ€ ๋‚ฌ๋‹ค.

์ƒ๊ฐํ•ด๋ณด๋ฉด 1,000,000์ •๋„์˜ ์ˆ˜๊ฐ€ 3์ง„์ˆ˜๋กœ ๋ณ€ํ™˜๋˜์—ˆ์„ ๋•Œ ํฌ๊ธฐ๋Š” ์ƒ๋‹นํžˆ ํฌ๊ธฐ ๋•Œ๋ฌธ์— ์ด๋ฅผ ์ „๋ถ€ ํƒ์ƒ‰ํ•˜๋ฉด์„œ ์†Œ์ˆ˜๋ฅผ ๊ตฌํ•˜๋Š” ๊ฒƒ์€ ๋‹ค์†Œ ๋ฌด๋ฆฌ๊ฐ€ ์žˆ์„ ์ˆ˜ ์žˆ๋‹ค.

 

ํŠน์ • ์ˆ˜๊ฐ€ ์†Œ์ˆ˜์ธ์ง€ ์•„๋‹Œ์ง€๋ฅผ ํƒ์ƒ‰ํ•  ๋•Œ๋Š” ์ œ๊ณฑ๊ทผ๊นŒ์ง€๋งŒ ํƒ์ƒ‰ํ•˜๋ฉด ์•Œ ์ˆ˜ ์žˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด 12๋ผ๋Š” ์ˆ˜์˜ ์•ฝ์ˆ˜๋ฅผ ์‚ดํŽด๋ณด๋ฉด 1, 2, 3, 4, 6, 12๊ฐ€ ์žˆ๋Š”๋ฐ 12์˜ ์ œ๊ณฑ๊ทผ์ธ Int(3.xx)์—  1์„ ๋”ํ•ด 4๊นŒ์ง€๋งŒ ๋Œ๋ฉด ์†Œ์ˆ˜์ธ์ง€ ์•„๋‹Œ์ง€ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.(2๋Š” 6๊ณผ, 3์€ 4์™€ ์ง์ง€์–ด์ง€๊ธฐ ๋•Œ๋ฌธ) 

 

import Foundation

func isPrime(_ num: Int) -> Bool {
    if num <= 1 { return false }
    for i in 2..<Int(sqrt(Double(num)))+1 {
        if num % i == 0 {
            return false
        }
    }
    return true
}

func solution(_ n:Int, _ k:Int) -> Int {
    
    let changeKnum = String(n, radix: k)
    let numArr = changeKnum.split(separator: "0")
    var cnt = 0
    for x in numArr {
        if isPrime(Int(x)!) {
            cnt += 1
        }
    }
    
    return cnt
}