State by Goal

연결성, 사이클, 위상성은 추적해야 할 상태가 서로 다르다

같은 그래프라도 질문이 바뀌면 배열의 의미도 바뀝니다.

검증 목표
상태
성공/실패 판정
연결 요소
`visited`
새 탐색 시작 횟수 = 컴포넌트 수
방향 사이클
`state: 0/1/2`
방문중(1) 재진입 = cycle
위상성
`indegree`, `seen`
seen == V이면 DAG

핵심: 검증 함수 이름보다 상태 배열의 의미를 먼저 잠그면 오탐과 누락이 줄어듭니다.