// 입력:
//     그래프 graph (인접 리스트)
//     정점의 개수 N
//     시작 정점 start

// 준비:
//     visited 배열을 크기 N으로 만들고 모두 false로 초기화
//     빈 스택 stack을 만든다

// 1. 스택에 시작 정점 start를 넣는다

// 2. 스택이 비어있지 않은 동안 반복한다
//     2-1. 스택의 맨 위 정점을 꺼내서 cur에 저장한다

//     2-2. 만약 cur가 이미 방문된 정점이면
//          다음 반복으로 넘어간다

//     2-3. cur를 방문 처리한다
//          (visited[cur] = true)
//          cur를 출력한다 (또는 방문 기록)

//     2-4. cur와 인접한 모든 정점을 확인한다
//          (뒤에서부터 확인하면 재귀 DFS와 순서가 비슷해진다)

//          각 인접 정점 next에 대해
//              만약 next가 아직 방문되지 않았다면
//                  스택에 next를 넣는다

// 3. 스택이 빌 때까지 반복하면 DFS 종료

Embed on website

To embed this project on your website, copy the following code and paste it into your website's HTML: