Algorithm/Programmers
[ํ๋ก๊ทธ๋๋จธ์ค] (Swift) kakao - k์ง์์์ ์์ ๊ฐ์ ๊ตฌํ๊ธฐ (lv.2)
๊ฐ์ ๐ฅ
2022. 8. 22. 23:55
๋ฐ์ํ
๐ ๋ฌธ์ ๋งํฌ
https://school.programmers.co.kr/learn/courses/30/lessons/92335
ํ๋ก๊ทธ๋๋จธ์ค
์ฝ๋ ์ค์ฌ์ ๊ฐ๋ฐ์ ์ฑ์ฉ. ์คํ ๊ธฐ๋ฐ์ ํฌ์ง์ ๋งค์นญ. ํ๋ก๊ทธ๋๋จธ์ค์ ๊ฐ๋ฐ์ ๋ง์ถคํ ํ๋กํ์ ๋ฑ๋กํ๊ณ , ๋์ ๊ธฐ์ ๊ถํฉ์ด ์ ๋ง๋ ๊ธฐ์ ๋ค์ ๋งค์นญ ๋ฐ์ผ์ธ์.
programmers.co.kr
๐ ๋ฌธ์ ํ์ด
1. k์ง์๋ก ๋ฐ๊พธ๋ฉด์ ๋์์ ๋ฐฐ์ด๋ก ๋ง๋ค์ด์ฃผ๋๋ฐ, 0์ผ๋ก split ํด์ ๋ฃ์ด์ฃผ๊ธฐ
2. splitํด์ ๋ฃ์ด์ค ๋ฐฐ์ด์์ ํ๋์ฉ ๊บผ๋ด์ ์์ ํ๋ณ
- 0์ split ๋จ์ด์ด๊ธฐ ๋๋ฌธ์ pass
- 1์ ์์๊ฐ ์๋๊ธฐ ๋๋ฌธ์ pass
- ์์ ํ๋ณํด์ค์ ์์๋ผ๋ฉด true, ์๋๋ผ๋ฉด false
3. ์์์ด๋ฉด count += 1 ํด์ค
๐ ์์ค์ฝ๋
GitHub - deslog/Algorithm
Contribute to deslog/Algorithm development by creating an account on GitHub.
github.com
import Foundation
func solution(_ n: Int, _ k: Int) -> Int {
let changeN = changeFormat(n: n, k: k)
var count = 0
for char in changeN {
if char == 0 {
continue
}
if char == 1 {
continue
}
if isPrime(n: char) {
count += 1
}
}
return count
}
func isPrime(n: Int) -> Bool {
if(n<4) {
return n == 1 ? false : true
}
for i in 2...Int(sqrt(Double(n))) {
if(n % i == 0) { return false }
}
return true
}
func changeFormat(n: Int, k: Int) -> [Int] {
let split = String(n, radix: k).split(separator: "0").map { Int($0)! }
return split
}
๋ฐ์ํ