06:47
์ด ๋ฌธ์ ๋ ์๋ toPick == 0
์ผ ๋ picked
๋ฅผ ๋ฐ๋ก ์ถ๋ ฅํ๊ฒ ํ์๋๋ฐ, ์ด๋ ๊ฒ ์ ์ถํ๋ฉด ์๊ฐ์ด๊ณผ๊ฐ ๋๋ค. ๊ทธ๋์ ํน์ ํ๋ ๋ง์์, ๋ฌธ์์ด๋ก ์ ์ฅํด์ ํ ๋ฒ์ ์ถ๋ ฅํ๋๋ ํต๊ณผ.
๋ฌธ์
https://www.acmicpc.net/problem/15656
๋ด๊ฐ ์์ฑํ ์ฝ๋
Swift
let input = readLine()!.split(separator: " ").map { Int(String($0))! }
let n = input[0]
let m = input[1]
let nums = readLine()!.split(separator: " ").map { Int(String($0))! }.sorted()
var picked = [String]()
var result = ""
/*
n: ์ ์ฒด ์์์ ์
toPick: ๊ณ ๋ฅผ ์ ์๋ ์์์ ์
*/
func pick(n: Int, toPick: Int) {
// ๊ธฐ์ ์ฌ๋ก: ๊ณ ๋ฅผ ์ ์๋ ์์์ ์๊ฐ ์์ผ๋ฉด ์ถ๋ ฅํ๊ณ ์ข
๋ฃ
if toPick == 0 {
result += picked.joined(separator: " ") + "\n"
return
}
// ์๋ฅผ ๊ณ ๋ฅธ๋ค. ๊ฐ์ ์๋ฅผ ์ฌ๋ฌ ๋ฒ ๊ณจ๋ผ๋ ๋๋ค.
for i in 0..<n {
picked.append(String(nums[i]))
pick(n: n, toPick: toPick - 1)
picked.removeLast()
}
}
pick(n: n, toPick: m)
print(result, terminator: "")