알고리즘과 자료 구조 - 순열과 조합

인생노잼시기·2021년 7월 20일
0

순열permutation

  • n개의 원소에서 r개의 원소를 순서가 있으면서 뽑는 경우의 수
  • nPr = n! / (n-r)!
  • ex) 주머니에서 공 뽑기
func permutations(_ n: Int, _ k: Int) -> Int {
    var n = n
    var answer = n
    for _ in 1...k {
        n -= 1
        answer *= n
    }
    return answer
}

permutations(5, 3)  //60 5P3

조합combination

  • n개의 원소에서 r개의 원소를 순서에 상관없이 뽑는 경우의 수
  • nCr = n! / (n-r)! * r!
  • nCr = n-1Cr-1 + n-1Cr
  • ex) 주머니에서 공 뽑고 순서 제거하기 -> 1 2 와 2 1은 같다고 처리해주는 것

출처
Algorithms 라는 Library에서 Permutation 과 Combination을 지원해준다. (OCTOBER 7, 2020)
https://swift.org/blog/swift-algorithms/

https://github.com/apple/swift-algorithms/blob/main/Guides/Combinations.md

profile
인생노잼

0개의 댓글