나의 코드
- 순열로 모든 경우의 수를 구해줍니다.
- 구한 값이 소수인지 아닌지 판별해줍니다.
- 소수이면 Set에 추가합니다.
- Set에 갯수를 return 해줍니다.
import Foundation
var result: Set<Int> = []
func solution(_ numbers:String) -> Int {
let arr = Array(numbers)
for i in 1...arr.count{
permutation(cnt: 0, list: arr, value: "", totalCnt: i)
}
return result.count
}
func permutation(cnt: Int, list: [String.Element], value: String, totalCnt: Int){
if cnt == totalCnt{
primeNum(value)
return
}else {
for i in 0..<list.count{
var removedArray = list
let k = removedArray.remove(at: i)
permutation(cnt: cnt + 1, list: removedArray, value: "\(value)\(k)" ,totalCnt: totalCnt)
}
}
}
func primeNum(_ value: String) {
let num = Int(value)!
var cnt = 0
if num > 1{
for i in 2...num{
if cnt > 1{
break
}
if num % i == 0 {
cnt += 1
}
}
if cnt == 1{
result.insert(num)
}
}
}