Coaspe

LeetCode - 207. Course Schedule (Python) 본문

카테고리 없음

LeetCode - 207. Course Schedule (Python)

Coaspe 2022. 9. 17. 20:41

Python

class Solution:
    def canFinish(self, numCourses: int, prerequisites: List[List[int]]) -> bool:
        graph = collections.defaultdict(list)
        for a, b in prerequisites:
            graph[a].append(b)
        visited = set()
        traced = set()
        def dfs(i):
            if i in visited:
                return True
            if i in traced:
                return False
            
            traced.add(i)
            
            for y in graph[i]:
                if not dfs(y):
                    return False
                
            traced.remove(i)
            visited.add(i)
            return True
        
        for x in list(graph):
            if not dfs(x):
                return False
        return True

 

Comments