HIT해
[Swift/백준] N과 M (5) 본문
728x90
import Foundation
var flag = [Bool](repeating: false, count: 10001)
var result : [Int] = []
var nums : [Int] = []
func main() {
let NM = readLine()!.split(separator: " ").map { Int($0)! }
let (N,M) = (NM[0], NM[1]) // N 총 숫자, M depth
let XYZ = readLine()!.split(separator: " ").map { Int($0)! }
nums = XYZ.sorted()
backtracking(N: N, M: M, depth: 0)
}
func backtracking(N : Int, M : Int, depth : Int) {
if M == depth {
print( result.map {String($0) }.joined(separator: " ") )
return
}
for i in 0..<N {
if flag[nums[i]] == false {
flag[nums[i]] = true
result.append(nums[i])
backtracking(N: N, M: M, depth: depth + 1)
flag[nums[i]] = false
result.removeLast()
}
}
}
main()
'Swift > Swift 알고리즘' 카테고리의 다른 글
[Swift/프로그래머스] 퍼즐 게임 챌린지 (이분탐색) (0) | 2024.10.31 |
---|---|
[Swift/프로그래머스] 도넛과 막대 그래프 (완전탐색, 그래프) (0) | 2024.10.31 |
[Swift/백준] N과 M(1) (0) | 2024.10.03 |
[Swift] 알고리즘 약수,소수 공식들 (0) | 2024.10.01 |
[Swift/백준] 코딩 테스트 준비 - 기초 , 약수의 합 (0) | 2024.10.01 |