N๊ณผ M(1)(15649๋ฒ)
Silver 3
#๋ฐฑํธ๋ํน
๋ฌธ์ ๋ด์ฉ
๋ฌธ์ ์ ๊ทผ
๋ฐฑํธ๋ํน์ ์ด์ฉํด ํด๊ฒฐ ๊ฐ๋ฅํ๋ค.
์์ ํ์์ผ๋ก๋ ํด๊ฒฐํ ์ ์์ง๋ง ๋ฐฑํธ๋ํน์ ์ฐ๋ ๊ฒ ๊ณต๋ถ์ ๋์์ด ๋ ๊ฒ ๊ฐ๋ค.
1๋ถํฐ n๊น์ง์ ์์ฐ์ ์ค ์ค๋ณต ์์ด m๊ฐ๋ฅผ ๊ณ ๋ฅด๋ ๋ชจ๋ ๊ฒฝ์ฐ๋ฅผ ์ถ๋ ฅํ๋ค.
๋ฐฑํธ๋ํน์ ๊ฐ๋ ๋ถํฐ ๊ฐ๋จํ๊ฒ ์ด์ผ๊ธฐํ๊ฒ ๋ค.
๋ฐฑํธ๋ํน์ ์ผ์๋ก ์ญ ๋ด๋ ค๊ฐ๋ค๊ฐ ์ ๋ต์ด ์๋์ด ํ์ค์๋๋ฉด ์ด์ ์ผ๋ก ๋์์์ ๋ค์ ๋ค๋ฅธ ๊ฒฝ๋ก๋ก ๊ฒ์์ ์์ํ๋ ๋ฐฉ๋ฒ์ด๋ค.
๊ฐ๋จํ๊ฒ ์ฌ์ง์ผ๋ก ์งํ ๊ณผ์ ์ ๋ด๋ณด์.
์ฒ์์๋ 0 -> 1 -> 3์ผ๋ก ์ด๋ํ๋ฉด์ ํ์ํ๋ค. 3์ ๋๋ฌํ๋ฉด ๋ ๊น๊ฒ ๋ค์ด๊ฐ ์ ์๊ธฐ ๋๋ฌธ์ ๋ถ๋ชจ ๋ ธ๋๋ก ๋ค์ ์ด๋ํด์ ๋ค๋ฅธ ๊ฒฝ๋ก๋ก ์ฌํ์ํ๋ ๋ฐฉ์์ด๋ค.
๋ถ๋ชจ ๋ ธ๋๋ก ๋์๊ฐ๋ ๋ฐฉ๋ฒ์ ์์๊น์ง dfs๋ก ํน์ ๊น์ด๊น์ง ๋ค์ด๊ฐ๊ณ ๋๋ฉด ์ ์ฅํ๋ฉด์ ๋ฐฉ๋ฌธ ์ฌ๋ถ๋ฅผ ์ค์ ํ ํ ๋ฐ ๋ฐ๋ณต์ด ๋๋๊ณ , ๋ถ๋ชจ์ ๋ฐฉ๋ฌธ ์ฌ๋ถ๋ฅผ ํด์ ํ๋ ๊ฒ์ผ๋ก ๋ถ๋ชจ์ ๋ ธ๋๋ฅผ ํ์ํ ์ ์๋ค. ํ์ง๋ง ์ด์ ์ ๋ค์ด๊ฐ๋ ๊ณณ์ ์ด๋ฏธ ๋ฐฉ๋ฌธ ์ฒ๋ฆฌ๊ฐ ๋์ด ์๊ธฐ ๋๋ฌธ์ ๋ค์ด๊ฐ์ง ๋ชปํ๊ณ , ๋ค๋ฅธ ๊ฒฝ๋ก๋ก ๋ค์ด๊ฐ๊ฒ ๋๋ค.
๋ฌธ์ ํด๊ฒฐ ์ฝ๋
import java.io.BufferedReader
import java.io.InputStreamReader
private var res = arrayOf<Int>()
private var visited = booleanArrayOf()
private var num = 0
private var size = 0
private val sb = StringBuilder()
fun main() = with(BufferedReader(InputStreamReader(System.`in`))) {
val input = readLine().split(" ").map { it.toInt() }
num = input.first()
size = input.last()
res = Array(size) { 0 }
visited = BooleanArray(num)
dfs(0)
println(sb)
}
private fun dfs(depth: Int) {
if (depth == size) {
for (r in res) {
sb.append("$r ")
}
sb.append("\n")
return
}
for (i in 0 until num) {
if (!visited[i]) {
visited[i] = true
res[depth] = i+1
dfs(depth + 1)
visited[i] = false
}
}
}
๋ฌธ์ ํ์ด
dfs๋ก ๋ฐฑํธ๋ํน์ ์์ํ๋ค.
dfs์๋ depth๋ผ๋ ์ผ๋ง๋ ๊น์ด ๋ค์ด๊ฐ๋์ง ํ์ธํ๋ ํ๋ผ๋ฏธํฐ๋ง ๋ฐ๋๋ค.
depth๊ฐ ์ ๋ ฅ๋ฐ์ size๋ ๊ฐ์์ง๋ฉด ์ถ๋ ฅํด์ผ ํ๋ค.
๋ฐฉ๋ฌธ ์ฌ๋ถ๋ฅผ ํ์ธํด res์ ๋ฃ์ด์ค๋ค.
๊ทธ๋ฆฌ๊ณ ์ฌ๊ท ํธ์ถ์ ํด์ค๋ค.
์ฌ๊ท ํธ์ถ์ด ๋๋ ๋ค์์๋ ๋ถ๋ชจ์ ๋ฐฉ๋ฌธ ์ฒดํฌ๋ฅผ ํด์ ํ๋ค.
๋ฌธ์ ํด๊ฒฐ ๊ณผ์
๋ฐฑํธ๋ํน์ ์ฒ์์ด๋ผ ์ด๋ ต๋ค. ์์ ํ์์ผ๋ก๋ ํ ์ ์์ด์ Silver 3์ธ ๋ฏํ๋ค. ๋ฐฑํธ๋ํน ์ฐ์ต์ฉ ๋ฌธ์ ์ด๋ค.
๊ฐ์ ์ด๋ฆ์ ๋ฌธ์ ๊ฐ ์ฌ๋ฌ ๊ฐ ์์ด ๋ฐฑํธ๋ํน ์ฐ์ต์๋ ์ข์ ๊ฒ ๊ฐ๋ค.
'๐ฏ | ๋ฐฑ์ค > ๐ | Silver' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Kotlin, S5] ๋ฐฑ์ค 30010๋ฒ ์๋ชป๋ ๋ฒ๋ธ์ ๋ ฌ (0) | 2024.08.17 |
---|---|
[Kotlin, S5] ๋ฐฑ์ค 1813๋ฒ ๋ ผ๋ฆฌํ ๊ต์ (0) | 2024.08.16 |
[Kotlin, S1] ๋ฐฑ์ค 11403๋ฒ ๊ฒฝ๋ก ์ฐพ๊ธฐ (0) | 2024.08.11 |
[Kotlin, S1] ๋ฐฑ์ค 6064๋ฒ ์นด์ ๋ฌ๋ ฅ (0) | 2024.08.11 |
[Kotlin, S3] ๋ฐฑ์ค 31883๋ฒ FA์์ ์ง (0) | 2024.08.09 |