HOIT_B

[ 프로그래머스 C++ ] 피로도 (DFS) 본문

작고소중한 알고리즘 풀기

[ 프로그래머스 C++ ] 피로도 (DFS)

HOIT_77 2023. 11. 21. 16:12
728x90

문제 

https://school.programmers.co.kr/learn/courses/30/lessons/87946?language=cpp

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

 

코드 

#include <string>
#include <vector>
#include <algorithm>
using namespace std;
int num=0;
int visited[9]={0,}; //방문 : 1 , 방문X : 0

int dfs(int cnt, int k, vector<vector<int>> dungeons)
{   // cnt : 던전 탐험 수 , num : 최대 던전 탐험 수 
    if(cnt > num) num = cnt;
    
    for(int i=0; i<dungeons.size(); i++)
    {
        if(visited[i]==0&&dungeons[i][0] <=k)
        {
            visited[i] =1;
            dfs(cnt+1,k-dungeons[i][1],dungeons);
            visited[i] = 0;
        }
    }
    return 0;
}

int solution(int k, vector<vector<int>> dungeons) {
    //int answer = -1;
    dfs(0,k,dungeons);
    return num;
}
728x90
Comments