[프로그래머스] 코딩테스트 연습 - 48

krkorklo·2022년 2월 11일
0

프로그래머스

목록 보기
48/78

level 2 - 피로도

유저의 현재 피로도 k와 각 던전별 "최소 필요 피로도", "소모 피로도"가 담긴 2차원 배열 dungeons 가 매개변수로 주어질 때, 유저가 탐험할수 있는 최대 던전 수를 return 하도록 solution 함수를 완성해주세요.

입출력 예시
k : 80
dungeons : [[80,20],[50,40],[30,10]]
-> 3

function solution(k, dungeons) {
    var answer = 0;
    var visited = new Array(dungeons.length).fill(false);
    dfs(0, k);
    function dfs(idx, n) {
        if (n < 0 || idx == dungeons.length) return;
        for(var i=0; i<dungeons.length; i++) {
            if (n >= dungeons[i][0] && !visited[i]) {
                answer = Math.max(answer, idx + 1);
                visited[i] = true;
                dfs(idx + 1, n - dungeons[i][1]);
                visited[i] = false;
            }
        }
    }
    return answer;
}

0개의 댓글