문제 출처: https://school.programmers.co.kr/learn/courses/30/lessons/92341?language=kotlin
문제
나의 풀이
이 문제는 모든 던전을 방문해야 함으로 깊이 우선 탐색으로 구현하고자 하였다. 재귀함수를 이용해 코드를 구현하였다.
class Solution {
var answer: Int = 0
var count = 0
val visited = BooleanArray(8)
fun dfs(k: Int, index:Int, dungeons: Array<IntArray>) {
visited[index] = true
count++
if (answer < count)
answer = count
for (i in dungeons.indices) {
if (!visited[i] && (dungeons[i][0] <= k - dungeons[index][1])) {
dfs(k - dungeons[index][1], i, dungeons)
}
}
visited[index] = false
count--
}
fun solution(k: Int, dungeons: Array<IntArray>): Int {
for (i in dungeons.indices) {
dfs(k, i, dungeons)
}
return answer
}
}