Inflearn Community Q&A
A* 구현에서
Written on
·
136
0
마지막 강의 6분 50초 쯤 부터 보시면
if (open[nextY, nextX] < G + H)
continue;
라는 코드를 짜셨는데,
여기서 open[nextY, nextX]는 (nextY, nextX)좌표의 이미 찾은 F값이고,
G + H 는 방금 새로 구한 F 값이라고 하셨는데요
if (closed[nextY, nextX])
continue;
위 코드로 이미 F값을 한 번 구했던 노드로 가는 건 스킵을 했는데
어떻게 이전에 구했던 F값과 새로 구한 F값을 비교할 수 있는지 궁금합니다.
C#
Answer 1
0
Rookiss
Instructor
안녕하세요,
비슷한 질문이 이전에 올라와서, 링크로 대체 드립니다.
closed까지 갔으면 진짜 방문이 끝난 것이지만,
open은 그냥 '예약'만 한 상태이고
실제로 방문하기 직전에 다른 후보를 찾을 수도 있습니다.
https://www.inflearn.com/questions/100852






저 그림을 보니깐 이해가 됐네요. 감사합니다.