• 카테고리

    질문 & 답변
  • 세부 분야

    게임 프로그래밍

  • 해결 여부

    해결됨

경로에 대한 정보

20.11.26 01:30 작성 조회수 143

0

BFS 설명 하시면서 

parent[], distance[] 같은 배열을 추가해서 플레이어가 움직인 정보를 얻을 수 있다고 하셨는데, DFS 이런걸 하지 않는 이유는, DFS에서는 갈 수 있는 경로를 끝까지 다녀 왔다가 길이 더이상 없으면 다시 이전 지점으로 돌아와서 다른 경로의 끝까지 진행하고, 이를 반복하는 특성 때문인가요?

답변 3

·

답변을 작성해보세요.

5

네 맞습니다.
엄밀히 말해서 BFS, DFS는 특별히 '경로'를 탐색한 단계는 아니고,
그냥 한번씩 모든 노드들을 순회한 것에 가깝습니다.
List같은 경우 0번부터 n번까지 노드들이 순서대로 나열되어 있으니
0번부터 순차적으로 쭉~ 순회하면 그만이지만
그래프의 경우 애당초 노드들이 규칙성 있게 배치된 것이 아니라
중복없이 순회하려면 규칙이 필요한데 그것이 BFS, DFS이라고 볼 수 있습니다.
그리고 BFS나 DFS의 순회 순서를 이용해서 정보를 수집하면
최단거리 등 많은 부가 정보를 얻을 수 있는겁니다.

1

네 맞습니다.
DFS는 처음부터 끝까지 무식하게 파고 들어가니
해당 경로가 최단 경로라는 보장이 없습니다.
반면 BFS는 무조건 시작점을 기준으로 가까운 곳부터 하나씩 탐색을 하게 되니,
어떤 지점을 발견한 순서를 역추적하면
그 경로가 정말 최단 경로라고 장담할 수가 있겠죠.

0

Hyobin Kim님의 프로필

Hyobin Kim

질문자

2020.11.26

답변 감사드려요

하나 더 여쭤보고 싶은데,

달아 주신 답변을 보고 생각해 본 건데

DFS, BFS는 단순히 경로를 탐색하는거죠?

아직 길을 가는 단계는 아닌거죠?

따져서 말하면, 경로 탐색으로 최단 경로를 찾아서 그 다음에 움직여 나가는거고, 현 강의에서 배운건, 탐색 단계 인거죠?