이 문제는 DFS 알고리즘을 사용하여 사이클을 이루지 않는 사람의 수를 구하는 문제 입니다. 내 풀이 방향그래프에서의 사이클이 존재하는 지의 여부는 간선 구분을 통해 판정할 수 있습니다. 사이클이 존재한다는 것은 역방향 간선의 여부와 동치인데 그전에 역방향간선에 대해 간단하게 살펴보자면 그래프에서 Ti부터 DFS알고리즘을 돌리면 트리형태를 띠게됩니다. 그러한 트리를 DFS 스패닝 트리라고 합니다. (Tm, Tj)의 간선은 스패닝트리의 자손에서 선조로 연결된 간선인 역방향 간선입니다. 그래서 사이클이 있는 그래프를 깊이우선탐색을 할 경우 무슨일이 벌어질지 생각해보면 쉽게 이해를 할 수 있습니다. 사이클에 포함된 정점 중 깊이 우선 탐색과정에서 처음만나는 정점을 u(Tj)라고 합시다. dfs(u)는 u에서 ..