01
Processing Data. Please Wait...

순환주기 그래프

Graphs 중급
30초 미리보기

순환주기 그래프

하나 이상의 vertex가 있는 unweighted, directed 그래프가 제공됩니다. 주어진 그래프에 순환주기가 포함되어 있는지 여부를 판단하는 함수를 작성합니다.

순환주기의 정의는 여러 vertex들이 모두 다 서로 연결되고 어느 하나의 vertex에서 시작하여 다시 그 시작점으로 돌아올 수 있음을 의미합니다. 단 하나의 vertex만 있는 그래프도 순환주기 그래프입니다.

그래프의 vertex를 나타내는 edge목록(adjacency list)이 주어집니다. 그래프에 있는 vertex의 수는 edge목록의 길이와 같습니다. 각 개별 edge는 각 인덱스에 해당하는 vertex에서 시작하여 edge목록에 포함되어 있는 vertex로 이동할 수 있음을 의미합니다.

또한 그래프에는 셀프루프가 포함될 수 있습니다. 셀프루프는 대상과 출발지가 동일한 edge입니다. 셀프루프도 순환주기로 간주됩니다.

예제 1

입력

edges = [
  [1, 3],
  [2, 3, 4],
  [0],
  [],
  [2, 5],
  [],
]

출력

true 
// 그래프에 여러개의 순환주기가 있습니다: 
// 1) 0 -> 1 -> 2 -> 0
// 2) 0 -> 1 -> 4 -> 2 -> 0