[백준] 15649번 - Swift

이창형·2023년 6월 8일
0

코드

let input = readLine()!.split(separator: " ").map{Int($0)!}

// 중복을 허용하지 않기 때문에 중복을 확인하기 위한 것
var visited = Array(repeating: false, count: input[0] + 1)

func dfs(_ length: Int, _ stack: [String]) {
    if length == input[1] {
        print(stack.joined(separator: " "))
        return
    }
    
    for i in 1...input[0] {
        if !visited[i] {
            visited[i] = true
            dfs(length + 1, stack + [String(i)])
            visited[i] = false
        }
    }
}

dfs(0, [])

회고

  • 익숙하지가 않아서 못풀었다
  • 실버3인데도 재귀부분에서 많이 약한 것 같다
  • 많이 풀어서 익숙해지자
profile
iOS Developer

0개의 댓글