본문 바로가기
Algorithm/Study

Swift - 순열(Permutation)

by HaningYa 2020. 7. 11.
728x90

 

 

1,2,3,4,5,6,7,8,9 중에서 중복되지 않고 3개를 뽑는 모든 경우의 수를 만들어라

예를들어

[1,2,3] [1,2,4] ... [9,8,7]

 

코드

import Foundation

func permutation(_ arr : [Int],_ output : [Int],_ visited : [Bool],_ depth : Int,_ n : Int,_ r : Int){
    var arr = arr
    var output = output
    var visited = visited

    if depth == r {
        // stack.append(output)
        print(output)
        return
    }
    for i in 0..<n {
        if visited[i] != true {
            visited[i] = true
            output[depth] = arr[i]
            permutation(arr,output,visited,depth + 1,n,r)
            output[depth] = 0
            visited[i] = false
        }
    }
}

var answer = 0
let arr = [1,2,3,4,5,6,7,8,9]
let n = arr.count
let r = 3
let output : [Int] = Array(repeating: 0, count: r)
let visited : [Bool] = Array(repeating: false, count: n)
permutation(arr,output,visited,0,n,r)

 


출력

더보기

[1, 2, 3]
[1, 2, 4]
[1, 2, 5]
[1, 2, 6]
[1, 2, 7]
[1, 2, 8]
[1, 2, 9]
[1, 3, 2]
[1, 3, 4]
[1, 3, 5]
[1, 3, 6]
[1, 3, 7]
[1, 3, 8]
[1, 3, 9]
[1, 4, 2]
[1, 4, 3]
[1, 4, 5]
[1, 4, 6]
[1, 4, 7]
[1, 4, 8]
[1, 4, 9]
[1, 5, 2]
[1, 5, 3]
[1, 5, 4]
[1, 5, 6]
[1, 5, 7]
[1, 5, 8]
[1, 5, 9]
[1, 6, 2]
[1, 6, 3]
[1, 6, 4]
[1, 6, 5]
[1, 6, 7]
[1, 6, 8]
[1, 6, 9]
[1, 7, 2]
[1, 7, 3]
[1, 7, 4]
[1, 7, 5]
[1, 7, 6]
[1, 7, 8]
[1, 7, 9]
[1, 8, 2]
[1, 8, 3]
[1, 8, 4]
[1, 8, 5]
[1, 8, 6]
[1, 8, 7]
[1, 8, 9]
[1, 9, 2]
[1, 9, 3]
[1, 9, 4]
[1, 9, 5]
[1, 9, 6]
[1, 9, 7]
[1, 9, 8]
[2, 1, 3]
[2, 1, 4]
[2, 1, 5]
[2, 1, 6]
[2, 1, 7]
[2, 1, 8]
[2, 1, 9]
[2, 3, 1]
[2, 3, 4]
[2, 3, 5]
[2, 3, 6]
[2, 3, 7]
[2, 3, 8]
[2, 3, 9]
[2, 4, 1]
[2, 4, 3]
[2, 4, 5]
[2, 4, 6]
[2, 4, 7]
[2, 4, 8]
[2, 4, 9]
[2, 5, 1]
[2, 5, 3]
[2, 5, 4]
[2, 5, 6]
[2, 5, 7]
[2, 5, 8]
[2, 5, 9]
[2, 6, 1]
[2, 6, 3]
[2, 6, 4]
[2, 6, 5]
[2, 6, 7]
[2, 6, 8]
[2, 6, 9]
[2, 7, 1]
[2, 7, 3]
[2, 7, 4]
[2, 7, 5]
[2, 7, 6]
[2, 7, 8]
[2, 7, 9]
[2, 8, 1]
[2, 8, 3]
[2, 8, 4]
[2, 8, 5]
[2, 8, 6]
[2, 8, 7]
[2, 8, 9]
[2, 9, 1]
[2, 9, 3]
[2, 9, 4]
[2, 9, 5]
[2, 9, 6]
[2, 9, 7]
[2, 9, 8]
[3, 1, 2]
[3, 1, 4]
[3, 1, 5]
[3, 1, 6]
[3, 1, 7]
[3, 1, 8]
[3, 1, 9]
[3, 2, 1]
[3, 2, 4]
[3, 2, 5]
[3, 2, 6]
[3, 2, 7]
[3, 2, 8]
[3, 2, 9]
[3, 4, 1]
[3, 4, 2]
[3, 4, 5]
[3, 4, 6]
[3, 4, 7]
[3, 4, 8]
[3, 4, 9]
[3, 5, 1]
[3, 5, 2]
[3, 5, 4]
[3, 5, 6]
[3, 5, 7]
[3, 5, 8]
[3, 5, 9]
[3, 6, 1]
[3, 6, 2]
[3, 6, 4]
[3, 6, 5]
[3, 6, 7]
[3, 6, 8]
[3, 6, 9]
[3, 7, 1]
[3, 7, 2]
[3, 7, 4]
[3, 7, 5]
[3, 7, 6]
[3, 7, 8]
[3, 7, 9]
[3, 8, 1]
[3, 8, 2]
[3, 8, 4]
[3, 8, 5]
[3, 8, 6]
[3, 8, 7]
[3, 8, 9]
[3, 9, 1]
[3, 9, 2]
[3, 9, 4]
[3, 9, 5]
[3, 9, 6]
[3, 9, 7]
[3, 9, 8]
[4, 1, 2]
[4, 1, 3]
[4, 1, 5]
[4, 1, 6]
[4, 1, 7]
[4, 1, 8]
[4, 1, 9]
[4, 2, 1]
[4, 2, 3]
[4, 2, 5]
[4, 2, 6]
[4, 2, 7]
[4, 2, 8]
[4, 2, 9]
[4, 3, 1]
[4, 3, 2]
[4, 3, 5]
[4, 3, 6]
[4, 3, 7]
[4, 3, 8]
[4, 3, 9]
[4, 5, 1]
[4, 5, 2]
[4, 5, 3]
[4, 5, 6]
[4, 5, 7]
[4, 5, 8]
[4, 5, 9]
[4, 6, 1]
[4, 6, 2]
[4, 6, 3]
[4, 6, 5]
[4, 6, 7]
[4, 6, 8]
[4, 6, 9]
[4, 7, 1]
[4, 7, 2]
[4, 7, 3]
[4, 7, 5]
[4, 7, 6]
[4, 7, 8]
[4, 7, 9]
[4, 8, 1]
[4, 8, 2]
[4, 8, 3]
[4, 8, 5]
[4, 8, 6]
[4, 8, 7]
[4, 8, 9]
[4, 9, 1]
[4, 9, 2]
[4, 9, 3]
[4, 9, 5]
[4, 9, 6]
[4, 9, 7]
[4, 9, 8]
[5, 1, 2]
[5, 1, 3]
[5, 1, 4]
[5, 1, 6]
[5, 1, 7]
[5, 1, 8]
[5, 1, 9]
[5, 2, 1]
[5, 2, 3]
[5, 2, 4]
[5, 2, 6]
[5, 2, 7]
[5, 2, 8]
[5, 2, 9]
[5, 3, 1]
[5, 3, 2]
[5, 3, 4]
[5, 3, 6]
[5, 3, 7]
[5, 3, 8]
[5, 3, 9]
[5, 4, 1]
[5, 4, 2]
[5, 4, 3]
[5, 4, 6]
[5, 4, 7]
[5, 4, 8]
[5, 4, 9]
[5, 6, 1]
[5, 6, 2]
[5, 6, 3]
[5, 6, 4]
[5, 6, 7]
[5, 6, 8]
[5, 6, 9]
[5, 7, 1]
[5, 7, 2]
[5, 7, 3]
[5, 7, 4]
[5, 7, 6]
[5, 7, 8]
[5, 7, 9]
[5, 8, 1]
[5, 8, 2]
[5, 8, 3]
[5, 8, 4]
[5, 8, 6]
[5, 8, 7]
[5, 8, 9]
[5, 9, 1]
[5, 9, 2]
[5, 9, 3]
[5, 9, 4]
[5, 9, 6]
[5, 9, 7]
[5, 9, 8]
[6, 1, 2]
[6, 1, 3]
[6, 1, 4]
[6, 1, 5]
[6, 1, 7]
[6, 1, 8]
[6, 1, 9]
[6, 2, 1]
[6, 2, 3]
[6, 2, 4]
[6, 2, 5]
[6, 2, 7]
[6, 2, 8]
[6, 2, 9]
[6, 3, 1]
[6, 3, 2]
[6, 3, 4]
[6, 3, 5]
[6, 3, 7]
[6, 3, 8]
[6, 3, 9]
[6, 4, 1]
[6, 4, 2]
[6, 4, 3]
[6, 4, 5]
[6, 4, 7]
[6, 4, 8]
[6, 4, 9]
[6, 5, 1]
[6, 5, 2]
[6, 5, 3]
[6, 5, 4]
[6, 5, 7]
[6, 5, 8]
[6, 5, 9]
[6, 7, 1]
[6, 7, 2]
[6, 7, 3]
[6, 7, 4]
[6, 7, 5]
[6, 7, 8]
[6, 7, 9]
[6, 8, 1]
[6, 8, 2]
[6, 8, 3]
[6, 8, 4]
[6, 8, 5]
[6, 8, 7]
[6, 8, 9]
[6, 9, 1]
[6, 9, 2]
[6, 9, 3]
[6, 9, 4]
[6, 9, 5]
[6, 9, 7]
[6, 9, 8]
[7, 1, 2]
[7, 1, 3]
[7, 1, 4]
[7, 1, 5]
[7, 1, 6]
[7, 1, 8]
[7, 1, 9]
[7, 2, 1]
[7, 2, 3]
[7, 2, 4]
[7, 2, 5]
[7, 2, 6]
[7, 2, 8]
[7, 2, 9]
[7, 3, 1]
[7, 3, 2]
[7, 3, 4]
[7, 3, 5]
[7, 3, 6]
[7, 3, 8]
[7, 3, 9]
[7, 4, 1]
[7, 4, 2]
[7, 4, 3]
[7, 4, 5]
[7, 4, 6]
[7, 4, 8]
[7, 4, 9]
[7, 5, 1]
[7, 5, 2]
[7, 5, 3]
[7, 5, 4]
[7, 5, 6]
[7, 5, 8]
[7, 5, 9]
[7, 6, 1]
[7, 6, 2]
[7, 6, 3]
[7, 6, 4]
[7, 6, 5]
[7, 6, 8]
[7, 6, 9]
[7, 8, 1]
[7, 8, 2]
[7, 8, 3]
[7, 8, 4]
[7, 8, 5]
[7, 8, 6]
[7, 8, 9]
[7, 9, 1]
[7, 9, 2]
[7, 9, 3]
[7, 9, 4]
[7, 9, 5]
[7, 9, 6]
[7, 9, 8]
[8, 1, 2]
[8, 1, 3]
[8, 1, 4]
[8, 1, 5]
[8, 1, 6]
[8, 1, 7]
[8, 1, 9]
[8, 2, 1]
[8, 2, 3]
[8, 2, 4]
[8, 2, 5]
[8, 2, 6]
[8, 2, 7]
[8, 2, 9]
[8, 3, 1]
[8, 3, 2]
[8, 3, 4]
[8, 3, 5]
[8, 3, 6]
[8, 3, 7]
[8, 3, 9]
[8, 4, 1]
[8, 4, 2]
[8, 4, 3]
[8, 4, 5]
[8, 4, 6]
[8, 4, 7]
[8, 4, 9]
[8, 5, 1]
[8, 5, 2]
[8, 5, 3]
[8, 5, 4]
[8, 5, 6]
[8, 5, 7]
[8, 5, 9]
[8, 6, 1]
[8, 6, 2]
[8, 6, 3]
[8, 6, 4]
[8, 6, 5]
[8, 6, 7]
[8, 6, 9]
[8, 7, 1]
[8, 7, 2]
[8, 7, 3]
[8, 7, 4]
[8, 7, 5]
[8, 7, 6]
[8, 7, 9]
[8, 9, 1]
[8, 9, 2]
[8, 9, 3]
[8, 9, 4]
[8, 9, 5]
[8, 9, 6]
[8, 9, 7]
[9, 1, 2]
[9, 1, 3]
[9, 1, 4]
[9, 1, 5]
[9, 1, 6]
[9, 1, 7]
[9, 1, 8]
[9, 2, 1]
[9, 2, 3]
[9, 2, 4]
[9, 2, 5]
[9, 2, 6]
[9, 2, 7]
[9, 2, 8]
[9, 3, 1]
[9, 3, 2]
[9, 3, 4]
[9, 3, 5]
[9, 3, 6]
[9, 3, 7]
[9, 3, 8]
[9, 4, 1]
[9, 4, 2]
[9, 4, 3]
[9, 4, 5]
[9, 4, 6]
[9, 4, 7]
[9, 4, 8]
[9, 5, 1]
[9, 5, 2]
[9, 5, 3]
[9, 5, 4]
[9, 5, 6]
[9, 5, 7]
[9, 5, 8]
[9, 6, 1]
[9, 6, 2]
[9, 6, 3]
[9, 6, 4]
[9, 6, 5]
[9, 6, 7]
[9, 6, 8]
[9, 7, 1]
[9, 7, 2]
[9, 7, 3]
[9, 7, 4]
[9, 7, 5]
[9, 7, 6]
[9, 7, 8]
[9, 8, 1]
[9, 8, 2]
[9, 8, 3]
[9, 8, 4]
[9, 8, 5]
[9, 8, 6]
[9, 8, 7]

 

 

 

728x90

'Algorithm > Study' 카테고리의 다른 글

Swift - Graph Implemetation  (0) 2020.07.20
Java 중복유무 순열 조합  (0) 2020.07.11
Swift - BFS iteration on Binary Tree  (0) 2020.07.09
Swift 배열 처리  (1) 2020.07.04
📕 잠깐 내가 이해한게 맞는지 정리  (0) 2020.06.19

댓글