인프런 커뮤니티 질문&답변

이종명님의 프로필 이미지

작성한 질문수

[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part2: 자료구조와 알고리즘

DFS (깊이 우선 탐색)

질문남깁니다.

작성

·

208

0

DFS를 3으로 호출했을때

3 0 1 2 까지 출력이 되고 2에서는 모든길이 막혀

for의 next가  5가 초과돼 종료가 됩니다. 근데 그 후에 뜬금없이 for문 안에 있는 DFS(next)가 실행이 되는데 이 부분이 이해가 가질않습니다.  

 

답변 2

2

Rookiss님의 프로필 이미지
Rookiss
지식공유자

첫번째 for문을 돌 때 이미 인접한 0, 1, 4를 체크하게끔 되어 있기 때문입니다.
인셉션 영화처럼 타고 타고 타고 몇 중으로 들어가는데
맨 처음 for문의 코드가 뒤늦게 실행되는 것입니다.
DFS 함수 내에서 DFS를 호출하기 때문인데,
재귀 함수를 처음 써보신다면 더 연구를 해보시고 
다시 코드를 살펴보시기 바랍니다. (매우 중요한 부분입니다!)

0

재귀함수가 호출되어도 FOR문은 아직 끝난게 아닙니다.