-
[백준] 5568 카드 놓기 Kotlin개발/알고리즘 2023. 4. 27. 17:20
https://www.acmicpc.net/problem/5568
dfs를 이용하여 모든 카드 경우의 수를 구했다.
import java.io.BufferedReader import java.io.InputStreamReader var graph = mutableListOf<String>() var visited = booleanArrayOf() val resultList = arrayListOf<Int>() var n = 0 var k = 0 fun main() = with(BufferedReader(InputStreamReader(System.`in`))) { n = readLine().toInt() k = readLine().toInt() visited = BooleanArray(100) { false } repeat(n) { graph.add(readLine()) } dfs(0, "") println(resultList.distinct().size) } fun dfs(depth: Int, result: String) { if (depth == k) { resultList.add(result.toInt()) return } for (i in 0 until n) { if (visited[i]) continue visited[i] = true dfs(depth + 1, result + graph[i]) visited[i] = false } }
'개발 > 알고리즘' 카테고리의 다른 글
[백준] 1193 분수찾기 Kotlin (0) 2023.04.28 [백준] 2589 보물섬 Kotlin (0) 2023.04.13 [백준] 14496 그대, 그머가 되어 Kotlin (0) 2023.01.23 [백준] 21937 작업 Kotlin (0) 2023.01.21 [백준] 1058 친구 Kotlin (0) 2023.01.20