Algorithm๐ฐ/ํ๋ก๊ทธ๋๋จธ์ค
[ํ๋ก๊ทธ๋๋จธ์ค] Swift ์นด์นด์ค 2022 k์ง์์์ ์์ ๊ฐ์ ๊ตฌํ๊ธฐ implementation
Jouureee
2022. 4. 15. 21:33
๋ฌธ์ :
https://programmers.co.kr/learn/courses/30/lessons/92335?language=swift
์ฝ๋ฉํ ์คํธ ์ฐ์ต - k์ง์์์ ์์ ๊ฐ์ ๊ตฌํ๊ธฐ
๋ฌธ์ ์ค๋ช ์์ ์ ์ n์ด ์ฃผ์ด์ง๋๋ค. ์ด ์ซ์๋ฅผ k์ง์๋ก ๋ฐ๊ฟจ์ ๋, ๋ณํ๋ ์ ์์ ์๋ ์กฐ๊ฑด์ ๋ง๋ ์์(Prime number)๊ฐ ๋ช ๊ฐ์ธ์ง ์์๋ณด๋ ค ํฉ๋๋ค. 0P0์ฒ๋ผ ์์ ์์ชฝ์ 0์ด ์๋ ๊ฒฝ์ฐ P0์ฒ๋ผ ์
programmers.co.kr
๋ถ์ :
swift์๋ ์ง์ ๋ณํ์ ์ฝ๊ฒ ํด์ฃผ๋ ํจ์๊ฐ ์๋ค. ๊ทธ๋์ ๋ค๋ฅธ์ธ์ด๋ณด๋ค ๊ฐ๊ฒฐํ๊ฒ ํผ๊ฑฐ ๊ฐ๋ค
Swift ์ฝ๋ :
//
// main.swift
// SOMA๐ฉ๐ป๐ป
//
// Created by JoSoJeong on 2022/04/15.
//
import Foundation
func isPrime(_ number: Int) -> Bool {
var bool = false
if number == 2 || number == 3 { return true }
let maxDivider = Int(sqrt(Double(number)))
bool = number > 1 && !(2...maxDivider).contains { number % $0 == 0 }
return bool
}
//์ง์ ๋ณํ
func solution(_ n:Int, _ k:Int) -> Int {
var answer = 0
let kcimal = String(n, radix: k)
let arr = kcimal.split(separator: "0")
for (idx, i) in arr.enumerated() {
if isPrime(Int(i)!) {
answer += 1
}
}
return answer
}
๊ฒฐ๊ณผ :