• 카테고리

    질문 & 답변
  • 세부 분야

    게임 프로그래밍

  • 해결 여부

    미해결

BFS 제가 이해한것이 맞나요??

21.08.11 16:16 작성 조회수 169

0

이해하기가 너무 여렵긴한데 25x25 좌표 미로를 만들고 

큐에다가 가장 가까운 node를 하나씩 추가하는 작업을 계속 반복을 합니다.

양 갈래길이 나오더라도 계속 추가하면서 가장 가까운곳, 먼저 예약된곳부터 방문하는식으로 반복을 계속하다가 

목표 지점에 도착하게되면 코드 lastIndex가 _points.Count 보다 크거나 같다고 될때 멈추게되는데 

q.Count  = 0 이될때까 while에서 빠져나오게되면서 멈추는것인가요? 

제가 설명을 잘못하는 이유가 아직 이해를 다 못해서 인거같습니다.

요약을 하자면 이미 코드를 실행하면 컴퓨터가 모든 인접해있는 곳들을 (if문에 걸리는 것들을 제외하고) BFS 알고리즘대로 이미 다 searching을 하고 render하는 부분에서 가장 적은 q반복횟수 인 경로를 거꾸로 Revers()해서 보여주는것인가요?

답변 1

답변을 작성해보세요.

0

q.Count  = 0 이될때까 while에서 빠져나오게되면서 멈추는것인가요? 

q.Count = 0을 만족한다면, 더 이상 길이 없다는 말이겠죠.
사실 강의에서 나온 그대로이기 때문에 사실 더 부연 설명 드릴게 없습니다.
참고로 말씀드리면 DFS BFS 부분은 매우 매우 매우 어려운 것이 맞습니다.
저도 처음에 공부할 때 1~2일 정도는 계속 생각을 했던 기억이 있네요.
코드를 한줄씩 찬찬히 분석을 하면서, 공책에 그림을 그려가면서 다음에 어떤 애를
예약하고 방문하는지를, 그리고 parent는 누구인지를 생각해보면서
아.주.천.천.히 고민해보시기 바랍니다.
다시 말씀드리지면 10시간씩 고민해도 전혀 이상한 부분이 아닙니다.