모든 순열

Sett·2021년 8월 22일
0

문제

https://www.acmicpc.net/problem/10974

문제 접근

  1. 백트래킹의 기본 이해를 예제 코드를 본 문제인데
  2. 재귀로 계속 접근하다가 조건을 걸어주는 듯..? (유망성 판단)
  3. 여기선 Array<Visited>Array<result>를 맵핑시켜서 문제를 해결 했다.
  4. visited가 여부로 유망성을 판단하는 건가..?

소스 코드

let input = Int(readLine()!)!
var result: [String] = [String](repeating: " ", count: input)
var visited: [Bool] = [Bool](repeating: false, count: input)

func solution(_ depth: Int) {
    if depth == input {
        print(result.joined(separator: " "))
        return
    }
    
    for i in 0..<input {
        if visited[i] {
            continue
        }
        visited[i] = true
        result[depth] = "\(i+1)"
        solution(depth + 1)
        visited[i] = false
    }
}

solution(0)
profile
안녕하세요

0개의 댓글

관련 채용 정보