본문 바로가기

IT/알고리즘

[백준] 6603번 로또

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