프로그래머스 Lv.2: 피로도

Steve·2021년 11월 15일
0

https://programmers.co.kr/learn/courses/30/lessons/87946

순열 문제이다.
가능한 순서를 모두 조합한 후 탐험된 던전의 개수가 가장 큰 것을 리턴한다.

function solution(k, dungeons) {
    var answer = 0;
    let check = Array(dungeons.length).fill(0);
  
    function DFS(L, k) {
        if (k === 0) {
            if (L > answer) answer = L;
        }
        else if (L === dungeons.length) answer = L;
        else {
            for (let i = 0; i < dungeons.length; i++) {
                if (check[i] === 0 && dungeons[i][0] <= k) {
                    check[i] = 1;
                    DFS(L+1, k-dungeons[i][1]);
                    check[i] = 0;
                }
            }
            if (L > answer) answer = L;
        }
    }
  
    DFS(0, k);
    return answer;
}
profile
게임과 프론트엔드에 관심이 많습니다.

0개의 댓글