[백준] 모든 순열 (10974)

문제 설명

백준 10974번 문제 링크

입력 및 출력

» 입력

첫째 줄에 N(1 ≤ N ≤ 8)이 주어진다.

» 출력

첫째 줄부터 N!개의 줄에 걸쳐서 모든 순열을 사전순으로 출력한다.

예제 입출력(테스트케이스)

입력 출력
3 1 2 3
1 3 2
2 1 3
2 3 1
3 1 2
3 2 1

문제 풀이(SWIFT) 1

//
//  main.swift
//  BOJ10974_SWIFT
//
//  Created by choiyoujun on 2022/02/23.
//

let N = Int(readLine()!)!
var check = [Bool](repeating: false, count: N + 1)

func dfs(depth: Int, str: String) {
    if depth == N {
        print(str)
        return
    }
    
    for i in 1...N {
        if !check[i] {
            check[i] = true
            dfs(depth: depth + 1, str: str + "\(i) ")
            check[i] = false
        }
    }
}

dfs(depth: 0, str: "")

태그:

카테고리:

업데이트: