[백준] 15650번 - Swift

이창형·2023년 6월 8일
0

코드

import Foundation

let input = readLine()!.split(separator: " ").map{Int($0)!}
let n = input[0]
let m = input[1]
var visited = Array(repeating: false, count: n+1)

func dfs (_ length: Int, _ stack: [Int]) {
    if length == m {
        print(stack.map{String($0)}.joined(separator: " "))
        return
    }

    for i in 1...n {
        if !visited[i] && i > (stack.last ?? 0) {
            visited[i] = true
            dfs(length+1, stack + [i])
            visited[i] = false
        }
    }
}

dfs(0, [])

회고

  • 아까 전에 풀었던 백트래킹 문제에서 조건이 추가된 문제였다
  • 쉽게 클리어
  • 계속 써보면서 백트래킹에 익숙해지자
profile
iOS Developer

0개의 댓글