Swift랑 친해지기/programmers 풀기

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

데브킹덕 2023. 11. 2. 15:53

https://school.programmers.co.kr/learn/courses/30/lessons/12977

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

try)

1. 순차적으로 완전 탐색하기 위해 첫번째, 두번째, 세번째 자리수 지정

ex) nums = [1,2,3,4]

첫번째 1 두번째 2 세번째 3

첫번째 1 두번째 2 세번째 4

첫번째 2 두번째 3 세번째 4

 

2. 3개의 수를 합해 sqrt 제곱근 메서드를 이용해 제곱근 까지의 약수의 개수가 몇개인지 파악

 

3. 약수의 개수가 1이면 1과 자기 자신이므로 소수임

import Foundation

func solution(_ nums:[Int]) -> Int {
    var result = 0

    for one in 0..<nums.count - 2{
        var two = one
        
        while two < nums.count - 2{
            two += 1
            var three = two
            
            while three < nums.count - 1{
                three += 1        
                let sum = nums[one] + nums[two] + nums[three]
                let sqrtSum = sqrt(Double(sum))
                var measure = 0 //약수
                
                for i in 1...Int(sqrtSum){ 
                    if sum % i == 0{
                        measure += 1
                    }
                }
                
                if measure == 1{
                    result += 1
                }
                
            }
            
        }
        
    }

    return result
}