Swift
[Swift] Combination(조합)
띵지니어
2024. 6. 16. 21:18
반응형
조합(Combination)
조합이란
서로 다른 n개의 객체 중에서 r개(n≥r) 의 객체를 선택하는 방법의 수를 나타냅니다.
조합은 순서가 중요하지 않은 더 큰 집합에서 항목을 선택하는 것입니다!
예를 들어 [1, 2, 3] 이라는 배열에서 2개를 뽑는 조합은 [1, 2], [1, 3], [2, 3] 입니다.
참고로 조합에서 순열과 달리 [1, 2] 와 [2, 1]은 같은 것으로 취급됩니다.
수식은 nCr 입니다.
코드 (Swift) - 재귀 구현
func combination<T>(_ elements: [T], _ k: Int) -> [[T]] {
var result = [[T]]()
func combi(_ index: Int, _ now: [T]) {
if now.count == k {
result.append(now)
return
}
for i in index..<elements.count {
combi(i + 1, now + [elements[i]])
}
}
combi(0, [])
return result
}
let card = readLine()!.split(separator: " ").map { Int(String($0))! }
let combiResult = combination(card, 2)
print(combiResult)
결과
작동 순서
말로 설명하기 어려워서, 그림으로 표현하였습니다.
반응형