인프런 커뮤니티 질문&답변

wldls317님의 프로필 이미지
wldls317

작성한 질문수

10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트

7-A

7-a, dp, 다익스트라 알고리즘관련 질문입니다!!

작성

·

46

0

- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!
- 먼저 유사한 질문이 있었는지 검색해보세요.
- 서로 예의를 지키며 존중하는 문화를 만들어가요.
- 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.

 

뭔가 이 문제에서 inf로 처음에 거리를 초기화해놓는것이 다익스트라 알고리즘과 비슷한것같은데,

이 문제처럼 다익스트라 알고리즘도 dp의 하나의 형태라고 볼 수 있을까요?

답변 1

0

큰돌님의 프로필 이미지
큰돌
지식공유자

안녕하세요 ㅎㅎ

네 DP라고 볼 수 있으며 정확히는 DP + 그리디 알고리즘이다 라고 보시면 됩니다.

DP는 큰 문제를 작은 문제로 나누어 해결하며, 작은 문제의 최적해를 이용해 큰 문제의 최적해를 구하는 기법인데 다익스트라 알고리즘도 한 번 방문한 정점에서의 최단 경로를 기록하고, 이를 바탕으로 다음 정점으로의 최단 경로를 계산한다는 점에서 유사합니다.

 

DP는 동일한 문제를 여러 번 계산하지 않도록, 이전에 계산한 결과를 메모이제이션 하는데 다익스트라 알고리즘은 우선순위 큐에 이미 계산된 최단 경로를 이용해 중복 계산을 방지하며, 매번 가장 짧은 경로를 선택해 다음 계산을 진행합니다.

 

정리하자면, 다익스트라 알고리즘은 DP + 그리디 알고리즘의 특징이 있는 알고리즘입니다. (현재 상태에서 최선의 선택을 하여 전체 최적해를 구하는 방식)


또 질문 있으시면 언제든지 질문 부탁드립니다.

좋은 수강평과 별점 5점은 제게 큰 힘이 됩니다. :)

감사합니다.

강사 큰돌 올림.


wldls317님의 프로필 이미지
wldls317

작성한 질문수

질문하기