728x90
SMALL
0이 나올때까지 돌려야하기때문에 실제 동작에서 0으로 마지막 나왔는지 추가 코드 필요.
https://www.acmicpc.net/problem/6603
fun main() = with(Scanner(System.`in`)) {
val n = nextInt()
val arr = Array<Int>(n) { 0 }
val max = 6
for (i in 0 until n) {
arr[i] = nextInt()
}
val isVisited = Array<Boolean>(n) { false }
fun dfs(depth : Int, text : String , lastIndex : Int){
if(depth == max){
println(text.fold("", { acc, c -> "$acc $c" }).trim())
return
}
for(i in lastIndex until n){
if(isVisited[i]) continue
isVisited[i] = true
dfs(depth + 1 , text + "${arr[i]}" , i + 1)
isVisited[i] = false
}
}
dfs(0,"", 0)
}
728x90
LIST
'IT > 알고리즘' 카테고리의 다른 글
[백준] 11048번 이동하기 (0) | 2025.01.06 |
---|---|
[백준] 14502번 연구소 (0) | 2024.12.16 |
[백준] 16917번 양념 반 후라이드 반 (0) | 2024.12.11 |
[백준] 11651번 좌표정렬하기_2 (3) | 2024.12.09 |
[백준] 14225번 부분수열의 합 (0) | 2024.12.09 |