DFS 공부중인데

문제에서 주어진게 모든 정점의 outdegree가 1인 유향 그래프고

그 그래프에서 알아내야 하는거는 각 컴포넌트들의 모든 정점 갯수랑 각 컴포넌트에서 사이클을 이루는 정점들의 갯수인데

여기서 DFS를 돌리면 사이클은 쉽게 구해지는데

컴포넌트는 DFS 시작점에 따라서 연결된 다른 점을 놓치게 됨

이런 상황에서 컴포넌트를 정확히 구할 수 있는 간단한 방법이 있을까?