9466번 텀 프로젝트 *리팩토링*


9466번 텀 프로젝트 *리팩토링*

https://www.acmicpc.net/problem/9466필요한 로직 : DFS (cycle 판별)[논리]그래프의 cycle 존재 유무를 판단할 때는 DFS 스패닝 트리를 구성해 backward edge가 존재하는지를 찾으면 된다. 즉, child node에서 ancestor node로 backward되는 것을 찾는다는 의미다.(1) if vis[src] : return srcdfs가 돌고 있는 와중 방문한 노드를 재방문하게 된, back edge가 발생한 시점이다. 해당 노드(v)를 그대로 리턴한다. 우리의 최종 목적은 cycle path에 들어있는 노드들을 체크하는 것이므로, 다시 v를 만날 때까지 dfs를 return하는 과정에서 만난 정점들은 모두 cycle[src]=True로 처리한다. 사이클에 속하지 않는 원소의 수를 출력하는..........



원문링크 : 9466번 텀 프로젝트 *리팩토링*