99클럽 코테 스터디 4기 22일차 TIL - 프로그래머스: 피로도(87946) Swift

레일리·2024년 11월 18일
0
post-thumbnail

ℹ️ 문제 정보

플랫폼번호제목유형난이도언어
프로그래머스87946피로도완전탐색Lv.2Swift

🚀 나의 접근 방법

던전의 개수가 최대 8로 경우의 수가 많지 않고 특별한 규칙이 없기 때문에 완전탐색으로 할만하다.

DFS로 탐색했으며 탐색하면서 피로도를 계산하여 던전을 탐험할 수 있는지 확인하고 탐험한 최대 던전 수를 구하면 된다.

✍️ 나의 코드

Swift

import Foundation

func solution(_ k:Int, _ dungeons:[[Int]]) -> Int {
    var visited = Array(repeating: false, count: dungeons.count)
    func dfs(_ k: Int, _ count: Int, _ maxCount: Int) -> Int {
        var mc = maxCount
        for (i, dungeon) in dungeons.enumerated() {
            if !visited[i] && k >= dungeon[0] {
                visited[i] = true
                mc = dfs(k-dungeon[1], count+1, mc)
                visited[i] = false
            } 
        }
        return max(mc, count)
    }
    return dfs(k, 0, 0)
}

🤔

profile
나야, 개발자

0개의 댓글