https://programmers.co.kr/learn/courses/30/lessons/12977
isPrime함수는 소수인지 판별하는 함수이다. 소수일 경우에 true를 반환한다.
func isPrime(_ num: Int) -> Bool {
if(num < 4) { return num == 1 ? false : true }
for i in 2...Int(sqrt(Double(num))) {
if(num % i == 0) { return false }
}
return true
}
combi함수는 숫자 3개를 조합하여 합한 값이 소수일 경우, result를 1 더한다. now에는 조합한 숫자들의 합, count에는 조합 횟수가 들어간다.
func solution(_ nums:[Int]) -> Int {
var result = 0
func combi(_ index: Int, _ sum: Int, _ count: Int) {
if count == 3 {
if isPrime(now) { result += 1}
return
}
for i in index..<nums.count {
combi(i + 1, sum + nums[i], count + 1)
}
}
combi(0, 0, 0)
return result
}