1️⃣ 문제
2️⃣ 풀이 방법 및 코드
던전을 갈 수 있는 루트의 모든 조합을 구하고, k 피로도를 만족하는 루트인지 확인하면서 완전탐색하는 방법!
import Foundation
func search(_ n: Int) -> [[Int]] {
var result = [[Int]]()
func combination(_ arr: [Int]) {
if arr.count == n {
result.append(arr)
return
}
else {
for i in 0..<n {
if !arr.contains(i) {
combination(arr + [i])
}
}
}
}
combination([])
return result
}
func solution(_ k:Int, _ dungeons:[[Int]]) -> Int {
var answer = 0
let combination = search(dungeons.count)
combination.forEach {
var k = k, count = 0
for i in $0 {
guard k >= dungeons[i][0] else { break }
k -= dungeons[i][1]
count += 1
}
answer = max(answer, count)
}
return answer
}