시배's Android
Algorithm | 백준 Kotlin 6443 애너그램 본문
private fun main() {
fun dfs(alphabet: IntArray, length: Int, str: String) {
if (str.length == length) {
println(str)
return
}
for (i in alphabet.indices) {
if (alphabet[i] > 0) {
alphabet[i]--
dfs(alphabet, length, str + (i + 'a'.code).toChar())
alphabet[i]++
}
}
}
repeat(readln().toInt()) {
val input = readln()
val alphabet = IntArray('z' - 'a' + 1)
input.forEach { alphabet[it - 'a']++ }
dfs(alphabet, input.length, "")
}
}
'Algorithm' 카테고리의 다른 글
Algorithm | 백준 Kotlin 5548 행성 탐사 (0) | 2023.10.07 |
---|---|
Algorithm | 백준 Kotlin 3273 두 수의 합 (0) | 2023.10.07 |
Algorithm | 백준 Kotlin 2553 마지막 팩토리얼 수 (0) | 2023.09.23 |
Algorithm | 백준 Kotlin 1158 요세푸스 문제 (0) | 2023.09.23 |
Algorithm | 백준 Kotlin 1965 상자넣기 (0) | 2023.09.16 |