• 카테고리

    질문 & 답변
  • 세부 분야

    게임 프로그래밍

  • 해결 여부

    미해결

거슬러 올라가는 이유

21.02.01 15:46 작성 조회수 175

1

제가 이해한게 맞는지 궁금해서 질문드립니다.

마지막 도착점에서 역산하여 포지션 리스트를 만들어 나가는 과정이 처음에는 왜 필요한지 의문이었는데 왜냐면 저는

처음에 언뜻 생각했을 때는 길 좌표를 BFS로 만들어 나가는 과정인 for문에서 _points 리스트를 추가해 나가면 될 거라고 생각했기 때문입니다.

그런데 다시 생각해보면 BFS 는 끝이 막힌 형태의 경로를 여러 갈래 찾아낼테고 그 여러 경우 중 마지막 점에 도착하는 경우가 필요했기 때문에 마지막 도착점에서 역산하는 과정이 필연적으로 들어가야 했다고 해석했습니다.

이게 맞을까요? 

만약 맞다면 최종점의 좌표를 어느곳으로 바꿔도 그에 따른 새로운 해법이 생길거라고 예상이 되는데 이것도 맞나요?

답변 2

·

답변을 작성해보세요.

0

송유승님의 프로필

송유승

질문자

2021.02.01

감사합니다 !

0

이해하신게 맞습니다.
for 문에서 points 리스트를 추가하는 것은
BFS 자체가 서칭한 경로 순서이지만,
BFS는 처음부터 목적지로 향한 최단거리 길로 향해서 서칭한다는 보장이 없습니다.
우리가 원하는건 목적지에 도착했을 때의 최단거리를 추출하고 싶기 때문에 역산 과정이 필요한 것입니다.

최종점을 어느 곳으로 바꾸더라도 BFS가 끝나고 나면
길이 있는지, 최단거리는 무엇인지 답은 무조건 나오게 됩니다.