[알고리즘] 프로그래머스(소수 만들기 - Swift)

신승현·2024년 3월 12일

코드카타 알고리즘

목록 보기
57/91
post-thumbnail

1. 소수 만들기

  • 주어진 숫자 중 3개의 수를 더했을 때 소수가 되는 경우의 개수를 구하려고 합니다. 숫자들이 들어있는 배열 nums가 매개변수로 주어질 때, nums에 있는 숫자들 중 서로 다른 3개를 골라 더했을 때 소수가 되는 경우의 개수를 return 하도록 solution 함수를 완성해주세요.

2. 제한조건

  • nums에 들어있는 숫자의 개수는 3개 이상 50개 이하입니다.
  • nums의 각 원소는 1 이상 1,000 이하의 자연수이며, 중복된 숫자가 들어있지 않습니다.

3. 입출력 예

numsresult
[1,2,3,4]1
[1,2,7,6,4]4

4. 정답코드

import Foundation

func solution(_ nums:[Int]) -> Int {
    
    var result: Int = 0; // 소수 개수 결과 값 변수
    
    for i in 0..<nums.count {
        for j in i..<nums.count {
            for k in j..<nums.count {
                if nums[i] != nums[j] && nums[j] != nums[k] { // 배열 내의 3개의 숫자가 서로 같지 않을 때의 조건
                    var sum = nums[i] + nums[j] + nums[k]; // 3개의 숫자의 합
                    result += prime(sum); // 소수를 구하는 함수
                }
            }
        }
    }

    return result;
}

// 소수를 구하는 함수
func prime(_ number: Int) -> Int{
    var count: Int = 0;
    
    for i in 1...number {
        if number % i == 0 {
            count += 1;
        }
    }
    
    return count == 2 ? 1 : 0; // 소수면 1을 반환 아니면 0을 반환
}
profile
개발자

0개의 댓글