[DFS] 순열 구하기

suojae·2023년 12월 1일

순열구하기


문제

  1. 1부터 N까지 번호가 적힌 구슬이 있다
  2. M개를 뽑아 일렬로 나열해보자

해결


import Foundation

let num1 = Int(readLine()!)!
let num2 = Int(readLine()!)!
var ch = [Int](repeating: 0, count: num1+1)
var res = [Int](repeating: 0, count: num1)
var cnt = 0

func dfs(_ v: Int) {
    
    if v == num2 {
        for i in 0..<v {
            print(res[i], terminator: " ")
        }
        print()
        cnt += 1
        
    } else {
        for i in 1...num1 {
            if ch[i] == 0 {
                ch[i] = 1
                res[v] = i
                dfs(v+1)
                ch[i] = 0
            }
        }
        
    }
}

dfs(0)
print(cnt)
profile
Hi 👋🏻 I'm an iOS Developer who loves to read🤓

0개의 댓글