프로그래머스/Lv.2 [Swift] 피로도 - import Foundation func solution(_ k:Int, _ dungeons:[[Int]]) -> Int { var result = 0 var visited: [Bool] = Array(repeating: false, count: dungeons.count) func dfs(_ index: Int, _ tired: Int, _ depth: Int) { var tired = tired visited[index] = true tired -= dungeons[index][1] for i in 0..<dungeons.count { if !visited[i] && dungeons[i][0] <= tired { dfs(i, tired, depth + 1) } } result = max(result, depth) visited[index] = false } for i in 0..<dungeons.count { if dungeons[i][0] <= k { dfs(i, k, 1) } } return result } // ------ 방법 2 ------ func solution2(_ k: Int, _ dungeons: [[Int]]) -> Int { return explore(k, dungeons, 0) } private func explore(_ k: Int, _ dungeons: [[Int]], _ depth: Int) -> Int { return dungeons.map { dungeon in k >= dungeon[0] ? explore(k - dungeon[1], dungeons.filter { elem in dungeon != elem }, depth + 1) : depth }.max() ?? depth } 공유하기 URL 복사카카오톡 공유페이스북 공유엑스 공유 게시글 관리 구독하기iOS 개발 공부 저작자표시 Contents 당신이 좋아할만한 콘텐츠 [Swift] 땅따먹기 2023.04.27 [Swift] 오픈채팅방 2023.04.27 [Swift] [3차] N진수 게임 2023.04.27 [Swift] 큰 수 만들기 2023.04.27 댓글 0 + 이전 댓글 더보기