[๋ฐฑ์ค] (Swift) 15654๋ฒ - N๊ณผ M(5) (๋๋ฒ์งธ ํ์ด) (feat. DFS, ๋ฐฑํธ๋ํน)
๐ ๋ฌธ์
https://www.acmicpc.net/problem/15654
15654๋ฒ: N๊ณผ M (5)
N๊ฐ์ ์์ฐ์์ ์์ฐ์ M์ด ์ฃผ์ด์ก์ ๋, ์๋ ์กฐ๊ฑด์ ๋ง์กฑํ๋ ๊ธธ์ด๊ฐ M์ธ ์์ด์ ๋ชจ๋ ๊ตฌํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์์ค. N๊ฐ์ ์์ฐ์๋ ๋ชจ๋ ๋ค๋ฅธ ์์ด๋ค. N๊ฐ์ ์์ฐ์ ์ค์์ M๊ฐ๋ฅผ ๊ณ ๋ฅธ ์์ด
www.acmicpc.net
๐ ๋์ ํ์ด
N๊ณผ M (1)๋ฒ๋ฌธ์ ์ ์์ ๋๊ฐ์๋ฌธ์ ์ด๋ค. ๊ทธ๋ฅ ์ ๋ ฅ๋ฐ์ ์๋ก ์์ด์ ์ถ๋ ฅํ๋ ๊ฒ์ผ๋ฟ!! ํด๋น ํฌ์คํ ์ ์๋ ๋จ๊ฒจ ๋๊ฒ ๋ค. ์ ๊ธฐ์ ๋ ์์ธํ ํ์ด๊ฐ ๋์์๋ค.
์ด๊ฑฐ ๊ทธ๋ฅ ๋ฌธ์ ๋, ์ฝ๋๋ ์ธ์ฐ๊ฒ๋ค ;; ์ผ๋ฅธ๋๋ด์ผ์ง N๊ณผ M์๋ฆฌ์ฆ,,,, ์ด๋ ๊ฒ ๋ฐ๋ณตํ๋ฉด์ ์ฌ๊ท๋ฅผ ํ๋ค๋ณด๋ DFS ์ฌ๊ท๋ก ๋๋ฆฌ๋ ๋ฐฉ์์ ์์ ํ ์ดํดํ ๊ฒ ๊ฐ๋ค! ํ์ดํ
https://didu-story.tistory.com/371
[๋ฐฑ์ค] (Swift) 15649๋ฒ - N๊ณผ M(1) (feat. DFS, ๋ฐฑํธ๋ํน)
๐ ๋ฌธ์ https://www.acmicpc.net/problem/15649 15649๋ฒ: N๊ณผ M (1) ํ ์ค์ ํ๋์ฉ ๋ฌธ์ ์ ์กฐ๊ฑด์ ๋ง์กฑํ๋ ์์ด์ ์ถ๋ ฅํ๋ค. ์ค๋ณต๋๋ ์์ด์ ์ฌ๋ฌ ๋ฒ ์ถ๋ ฅํ๋ฉด ์๋๋ฉฐ, ๊ฐ ์์ด์ ๊ณต๋ฐฑ์ผ๋ก ๊ตฌ๋ถํด์ ์ถ๋ ฅํด
didu-story.tistory.com
๐ ์ ๋ต์ฝ๋
let nm = readLine()!.split(separator: " ").map{ Int($0)! }
let n = nm[0]
let m = nm[1]
let arr = readLine()!.split(separator: " ").map{ Int($0)! }.sorted(by: <)
var stack = [Int]()
var answer = ""
private func dfs() {
if stack.count == m {
answer += stack.map{ String($0) }.joined(separator: " ")
answer += "\n"
return
}
for i in 0..<n {
if !stack.contains(arr[i]) {
stack.append(arr[i])
dfs()
stack.removeLast()
}
}
}
dfs()
print(answer)