알고리즘
프로그래머스 피로도 C++
fulladdr
2023. 10. 20. 00:21
https://school.programmers.co.kr/learn/courses/30/lessons/87946
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
이 문제는 dfs 문제이다.
#include <string>
#include <cstring>
#include <vector>
#include <iostream>
using namespace std;
vector<vector<int>> Dungeons;
int visited[5001];
int Answer;
void dfs(int total, int cnt){
if (cnt > Answer){
Answer=cnt;
}
for (int i=0;i<Dungeons.size();i++){
if (total >= Dungeons[i][0] && visited[i]==0){
visited[i]=1;
dfs(total-Dungeons[i][1], cnt+1);
visited[i]=0;
}
}
}
int solution(int k, vector<vector<int>> dungeons) {
int answer = -1;
Dungeons = dungeons;
Answer = answer;
memset(visited, 0, sizeof(visited));
dfs(k, 0);
answer = Answer;
return answer;
}