https://school.programmers.co.kr/learn/courses/30/lessons/87946
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
완전탐색, dfs
배운점
탈출조건이 dfs안에 있을수도 있다
function solution(k, dungeons) {
var answer = -1;
// const min = Math.min(...dungeons.map((d) => d[0])); // 참여하기 위해 필요한 최소 최소필요 피로도
// 현재피로도, 방문한 던전 갯수, 미방문한 던전
function dfs(curr, step, restArr) {
answer = Math.max(answer, step);
// [탈출조건] 현재피로도가 최소필요피로도보다 작을시 // 밑에 if (need <= curr) 와 반복으로 없어도 됌
// if (curr < min) {
// return;
// }
for (let i = 0; i < restArr.length; i++) {
const [need, consume] = restArr[i];
// [탈출조건] 최소필요피로도가 충분할 시만 dfs
if (need <= curr) {
const newRestArr = [...restArr];
newRestArr.splice(i, 1);
dfs(curr - consume, step + 1, newRestArr);
}
}
}
dfs(k, 0, dungeons);
return answer;
}
'알고리즘' 카테고리의 다른 글
[프로그래머스LV2] 미로찾기 (bfs) (0) | 2023.08.29 |
---|---|
[프로그래머스 LV2] 게임 맵 최단거리 (0) | 2023.08.28 |
[프로그래머스 LV2] 양궁대회 (0) | 2023.08.25 |
삼각형 만들기 (0) | 2023.08.24 |
[프로그래머스 LV2] 이모티콘 할인행사 JS (0) | 2023.08.23 |