티스토리 뷰

https://programmers.co.kr/learn/courses/30/lessons/87946

 

코딩테스트 연습 - 피로도

XX게임에는 피로도 시스템(0 이상의 정수로 표현합니다)이 있으며, 일정 피로도를 사용해서 던전을 탐험할 수 있습니다. 이때, 각 던전마다 탐험을 시작하기 위해 필요한 "최소 필요 피로도"와 던

programmers.co.kr

 

[프로그래머스][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;
}
댓글