From 7b0ba519a3d036b7a5d294ff3bc6722a907f976f Mon Sep 17 00:00:00 2001 From: Kled Yu <83483378+1017yu@users.noreply.github.com> Date: Wed, 28 Feb 2024 10:52:59 +0900 Subject: [PATCH] =?UTF-8?q?[PGM]=20=ED=94=BC=EB=A1=9C=EB=8F=84=20/=20Level?= =?UTF-8?q?=202=20/=2060=EB=B6=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../\355\224\274\353\241\234\353\217\204.js" | 27 +++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 "Kled/\355\224\274\353\241\234\353\217\204.js" diff --git "a/Kled/\355\224\274\353\241\234\353\217\204.js" "b/Kled/\355\224\274\353\241\234\353\217\204.js" new file mode 100644 index 0000000..c47dc0f --- /dev/null +++ "b/Kled/\355\224\274\353\241\234\353\217\204.js" @@ -0,0 +1,27 @@ +// k: 현재 피로도, dungeons: 던전 +function solution(k, dungeons) { + let answer = 0; + + const dfs = (k, dungeons, visited) => { + for (let i = 0; i < dungeons.length; i += 1) { + // [require: 최소 필요 피로도, consume: 소모 피로도] + const [require, consume] = dungeons[i]; + + // 이미 방문한 던전이거나, 현재 피로도로 방문할 수 없는 던전일 경우 for 실행문 종료 + if (!require || require > k) continue; + + const copy = [...dungeons] + + // 현재 던전 방문 처리 + copy[i] = [null, null]; + + dfs(k - consume, copy, visited + 1); + } + + answer = Math.max(visited, answer); + }; + + dfs(k, dungeons, 0); + + return answer; +}