[프로그래머스] 피로도 js

DongDong·2024년 1월 16일
0
// 각 던전마다 탐험을 시작하기 위해 필요한 "최소 필요 피로도"
// 던전 탐험을 마쳤을 때 소모되는 "소모 피로도"
function solution(k, dungeons) {
  // 현재 피로도는 k
  // "최소 필요 피로도", "소모 피로도" 가 담긴 dungeons
  const visited = Array.from({ length: dungeons.length }).fill(false);
  const answer = [];
  // DFS로 완전탐색
  const dfs = (count, k) => {
    answer.push(count);
    for (let i = 0; i < dungeons.length; i++) {
      // 탈출조건
      if (visited[i]) continue;
      if (dungeons[i][0] > k) continue;
      visited[i] = true;
      dfs(count + 1, k - dungeons[i][1]);
      // 모든 경우 탐색을 위해 방문 처리를 false로 해줘야해요 !
      visited[i] = false;
    }
  };

  dfs(0, k);
  return Math.max(...answer);
}
profile
중요한건 꺾이지 않는 마음

0개의 댓글

관련 채용 정보