-
[programmers/Swift] 소수 만들기Archive/Questions 2022. 5. 6. 19:59728x90
programmers.co.kr - 코딩테스트연습 - Lv.1 - Summer/Winter Coding(~2018) - 소수 만들기
Constraints :
- nums에 들어있는 숫자의 개수는 3개 이상 50개 이하입니다.
- nums의 각 원소는 1 이상 1,000 이하의 자연수이며, 중복된 숫자가 들어있지 않습니다.
// // Created by Yongwoo Marco on 2022/05/06. // Copyright © 2022 Yongwoo Marco Kim. All rights reserved. // func solution(_ nums:[Int]) -> Int { func isPrime(num: Int) -> Bool { guard num > 3 else { return num == 1 ? false : true } for i in 2...Int(sqrt(Double(num))) { if(num % i == 0) { return false } } return true } var result = 0 func combination(_ arr: [Int], size: Int, current index: Int, selected: [Int]) { if size == 0 { if isPrime(num: selected.reduce(0, +)) { result += 1 } } else if index == arr.count { return } else { var newSelected = selected newSelected.append(arr[index]) combination(arr, size: size - 1, current: index + 1, selected: newSelected) combination(arr, size: size, current: index + 1, selected: selected) } } combination(nums, size: 3, current: 0, selected: []) return result } print(solution([1,2,3])) // 0 print(solution([1,2,3,4])) // 1 print(solution([1,2,7,6,4])) // 4
How I tried this :
사실 코드를 그 자리에서 만든건 아니지만 기존의 연습했던3개로 한정된 제한이 편리하게 조합을 이용할 수 있었다.
문제에 관한 모든 저작권 : https://programmers.co.kr/
728x90'Archive > Questions' 카테고리의 다른 글
[programmers/Swift] 예산 (0) 2022.05.07 [programmers/Swift] 음양 더하기 (0) 2022.05.07 [programmers/Swift] 3진법 뒤집기 (0) 2022.05.06 [programmers/Swift] 내적 (0) 2022.05.05 [programmers/Swift] 가운데 글자 가져오기 (0) 2022.05.04