다익스트라 알고리즘 강의듣고 질문드립니다.
0
안녕하세요
다익스트라 알고리즘 강의 듣고 질문드립니다.
다익스트라 알고리즘 코드 파일에서 Algorithm.cpp 파일 52~59번째 줄에
for (auto it = discovered.begin(); it != discovered.end(); it++)
{
if (it->cost < bestCost)
{
bestCost = it->cost;
bestIt = it;
}
}
이런 코드가 있고
이 코드는 각 발견한 Vertex를 순회하면서 제일 좋은 후보를 찾는다고 되어 있는데
왜 최적의 Vertex를 찾아야 되는지 이해가 안되서 질문드립니다.
최적의 Vertex를 찾아도 discoverd가 empty()가 될때까지 모든 연결된 Vertex를 순회해서
최적인지 아닌지를 체크하는데도 미리 최적의 Vertex를 찾는지 궁금합니다.
기술면접
Answer 1
0
다익스트라 알고리즘이 그렇게 동작하기 때문입니다.
발견한 여러 갈래의 길들 중에 가장 우수한 후보를 뽑아서 가는 것이고
그렇기 때문에 최단거리가 보장이 되는 것입니다.
헤더파일에 관한 질문
0
472
1
이진 탐색 트리 삭제 질문
0
751
1
해당 문제 유형을 수학적으로 표현 가능할까요?
0
550
1
vs2022 미로 줄간격
0
1651
2
pos 구조체 초기화 문제
0
525
0
맵이 이상하게 나오는데 무슨 문제인가요?
0
544
1
자동완성 기능 질문
1
561
2
push_back emplace_back 질문있습니다.
0
422
1
Container, Predicate 질문입니다.
0
429
1
_size - 2 질문
0
445
1
Disjoint Set 질문있습니다
0
467
1
우선순위 큐 구현 연습 intellisense 질문
0
429
1
int32 관련 질문
0
304
1
c++에서 처음 보는 문법
0
421
1
학습에 크게 지장이 있는건 아니지만 단순 궁금해서 질문드립니다
0
348
1
힙 정렬과 병합 정렬
0
454
1
resize 질문
0
283
1
처음 보는 for문 문법
0
421
1
환경 설정.. 궁금점
0
432
1
이 비교 연산자를 넣어주는 이유가 있나요?
0
316
1
소멸자 관련 질문
0
277
1
&의 차이
0
302
1
프레임 관리 질문입니다.
0
361
1
연산자 오버로딩 관련 질문입니다.
1
227
1

