알고리즘

[leetcode] 841. Keys and Rooms

JSYOvO 2021. 4. 18. 11:58
728x90
class Solution {
public:
    bool DFS(vector<vector<int>>& rooms, vector<int>& visited, int now, int& chked){
        bool ret = false;
        
        if(visited[now]){
            return ret;
        }
        if(chked == rooms.size() - 1) return !ret;
        
        visited[now] = 1;
        chked++;

        
        for(int i:rooms[now]){
            ret = ret | DFS(rooms, visited, i, chked);
        }
        
        return ret;
    }
    
    bool canVisitAllRooms(vector<vector<int>>& rooms) {
        vector<int> visited(rooms.size(), 0);
        int chked = 0;
        
        return DFS(rooms, visited, 0, chked);
    }
};

너무 쉬운 DFS 문제로 코멘트 생략~~