📝 코테/꿀팁
[Swift] 순열과 조합 간단히 구하기
JerryiOS
2023. 5. 9. 17:48
import Foundation
let arr = [1, 2, 3]
let n = 3
// O(n!)
func perm(_ current: [Int]) {
if current.count > n { return }
arr.forEach { perm(current + [$0]) }
if current.count < n { return }
print(current)
}
perm([])
// O(2^n)
func comb(_ current: [Int], _ idx: Int) {
guard current.count < n else {
print(current)
return
}
for i in idx..<arr.count {
comb(current + [arr[i]], i+1)
}
}
comb([], 0)
짧고 간단하게 구할 수 있다.
반응형