207. Course Schedule


207. Course Schedule

https://leetcode.com/problems/course-schedule/필요한 로직 : DFS[배경]그래프의 사이클 존재 여부를 DFS로 판별한다. 처음 든 생각은 "set에 지나온 노드들의 정보를 넣고 중복이 발생한 순간 dfs에서 상위로 False를 계속 반환하게 만들자"는 생각이었다. 그러나 아래 그림 중 cycle x 그래프 처럼, 만약에 0이라는 parent 노드가 0->1->2까지 순환없는 탐색이 가능했다면, 다시 0 parent노드로 돌아와 또 다른 자식노드인 2번 노드로 가게 된다. 이때 2번 노드는 이미 set에 들어있어 사이클이 존재한다고 판명되어 버린다. 이 문제를 해소하기 위해 부모 노드에서 리프노드까지 모든 순회를 무사히 마쳤다면, 지나온 자..........



원문링크 : 207. Course Schedule