티스토리 뷰
https://programmers.co.kr/learn/courses/30/lessons/87946
[프로그래머스][C++] 피로도
#include <string>
#include <vector>
using namespace std;
int answer = -1;
void dfs(int p, int cnt, vector<vector<int>> dungeons, vector<int> visit) {
answer = max(answer, cnt);
for (int i = 0; i < dungeons.size(); i++) {
if (visit[i]) continue;
visit[i] = 1;
if (p >= dungeons[i][0])
dfs(p - dungeons[i][1], cnt + 1, dungeons, visit);
else dfs(p, cnt, dungeons, visit);
visit[i] = 0;
}
}
int solution(int k, vector<vector<int>> dungeons) {
vector<int> visit(dungeons.size(), 0);
dfs(k, 0, dungeons, visit);
return answer;
}
'Problem Solving' 카테고리의 다른 글
[백준][C++] 14500 테트로미노 (0) | 2022.06.20 |
---|---|
[프로그래머스][C++] 괄호 회전하기 (0) | 2022.06.19 |
[백준][C++] 1913 달팽이 (0) | 2022.06.07 |
[프로그래머스][C++] 게임 맵 최단거리 (0) | 2022.06.04 |
[프로그래머스][C++] 영어 끝말잇기 (0) | 2022.06.03 |
댓글