๐ ๋ฌธ์
https://www.acmicpc.net/problem/15657
15657๋ฒ: N๊ณผ M (8)
N๊ฐ์ ์์ฐ์์ ์์ฐ์ M์ด ์ฃผ์ด์ก์ ๋, ์๋ ์กฐ๊ฑด์ ๋ง์กฑํ๋ ๊ธธ์ด๊ฐ M์ธ ์์ด์ ๋ชจ๋ ๊ตฌํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์์ค. N๊ฐ์ ์์ฐ์๋ ๋ชจ๋ ๋ค๋ฅธ ์์ด๋ค. N๊ฐ์ ์์ฐ์ ์ค์์ M๊ฐ๋ฅผ ๊ณ ๋ฅธ ์์ด
www.acmicpc.net
๐ ๋์ ํ์ด
์ค๋ณต์ ํ์ฉํด์ค์ผํ๊ธฐ ๋๋ฌธ์ if !stack.contains ๋ถ๋ถ์ ๋นผ์ ๋ฐฉ๋ฌธํ์ธ์ ์ํด์ฃผ์๊ณ , ํด๋น ์๋ณด๋ค๋ ์๊ฑฐ๋ ํฐ ์๊ฐ ์์ ์ฌ ์ ์๊ธฐ ๋๋ฌธ์ ๋งค๊ฐ๋ณ์๋ก ํ์ฌ ๋ฐฉ๋ฌธํ๊ณ ์๋ i ๊ฐ์ ๋๊ฒจ์ฃผ์๋ค.
๋๊ฐ์ ๋ฌธ์ ๋ N๊ณผ M(4)๋ฒ!
https://didu-story.tistory.com/375
[๋ฐฑ์ค] (Swift) 15651๋ฒ - N๊ณผ M(4) (feat. DFS, ๋ฐฑํธ๋ํน)
๐ ๋ฌธ์ https://www.acmicpc.net/problem/15652 15652๋ฒ: N๊ณผ M (4) ํ ์ค์ ํ๋์ฉ ๋ฌธ์ ์ ์กฐ๊ฑด์ ๋ง์กฑํ๋ ์์ด์ ์ถ๋ ฅํ๋ค. ์ค๋ณต๋๋ ์์ด์ ์ฌ๋ฌ ๋ฒ ์ถ๋ ฅํ๋ฉด ์๋๋ฉฐ, ๊ฐ ์์ด์ ๊ณต๋ฐฑ์ผ๋ก ๊ตฌ๋ถํด์ ์ถ๋ ฅํด
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 = [String]()
var answer = ""
private func dfs(start: Int) {
if stack.count == m {
answer += stack.joined(separator: " ") + "\n"
return
}
for i in start..<n {
stack.append(String(arr[i]))
dfs(start: i)
stack.removeLast()
}
}
dfs(start: 0)
print(answer)