[프로그래머스] 소수 만들기 Swift

승아·2021년 4월 20일
0

프로그래머스 - 소수 만들기

나의 코드

  • 조합을 사용하여 세개의 수를 뽑고 소수 판별을 해주었다.
  • 소수는 2부터 n-1까지 어떤 정수로도 나뉘어지면 안됨.
import Foundation

var answer = 0

// 소수 판별
func getPrimeNum(_ combination: [Int]){
    // print(combination)
    var sum = combination.reduce(0){ $0 + $1 }
    var flag = false
    
    for i in 2...sum-1{
        if sum % i == 0{
            flag = true
            break
        }
    }
    if !flag{
        answer += 1
    }
}

// 조합을 사용하여 3개 뽑기
func dfs(_ nums:[Int], _ combination: [Int], _ count: Int, _ start: Int){
    if count == 3{
        getPrimeNum(combination)
        return
    }else{
        for i in start+1..<nums.count{
            var arr = combination
            arr.append(nums[i])
            dfs(nums, arr, count+1, i)
            arr.removeLast()
        }
    }
}

func solution(_ nums:[Int]) -> Int {
    
    for i in 0..<nums.count{
        dfs(nums, [nums[i]], 1, i)
    }

    return answer
}

0개의 댓글