(Leetcode) [Graph, Dijkstra] Path with maximum probability
Question
https://leetcode.com/problems/path-with-maximum-probability/
Topic: Graph using Dijkstra
Dijkstra Algorithm
- shortest path ํ์
- negative weight ํฌํจ ๋ถ๊ฐ๋ฅ
- dynamic programming์ ํ์ฉ
- ์ต๋จ๊ฑฐ๋ฆฌ๋ฅผ ๊ตฌํ ๋ ๊ทธ ์ด์ ๊น์ง ๊ตฌํ๋ ์ต๋จ๊ฑฐ๋ฆฌ ์ ๋ณด๋ฅผ ๊ทธ๋๋ก ์ฌ์ฉํ๋ค
๊ณผ์ :
- ์์ ๋ ธ๋ ์ค์
- ์์ ๋ ธ๋๋ฅผ ๊ธฐ์ค์ผ๋ก ๊ฐ ๋ ธ๋์ minimum weight ์ ์ฅ
- unvisited node ์ค์์ minimum weight์ ๋ ธ๋๋ฅผ ์ ํ
- ํด๋น ๋ ธ๋๋ฅผ ๊ฑฐ์ณ์ ํน์ ๋ ธ๋๋ก ๊ฐ๋ ๊ฒฝ์ฐ๋ฅผ ๊ณ ๋ คํ์ฌ min cost ๊ฐฑ์
- 3 & 4 ๋ฐ๋ณต
์ ํ๋ธ์์ ๋ค์ต์คํธ๋ผ๋ฅผ ์ด์ฉํ๊ธฐ ์ํ ๊ทธ๋ํ ํด๋์ค์ ๋ค์ต์คํธ๋ผ ํจ์๋ฅผ ๋ง๋ ๊ฑธ ์ฐธ๊ณ ํด์ ํ์๋ค.
pair์ priority queue๋ฅผ ์ฌ์ฉํ๋ค.
์ด๋ฒ ๋ฌธ์ ๋ ์ต๋ ํ๋ฅ ์ ์ฐพ๋ ๋ฌธ์ ์ฌ์ ๋ค์ต์คํธ๋ผ๋ฅผ ์ด์ฉํ๋ ค๋ฉด ๋ชจ๋ ๊ฐ์ (distance)์ -1์ ๊ณฑํด์ผํ๋ค.
๊ทธ๋์ผ ์ ๋๊ฐ์ด ์ ์ผ ํฐ ์ (์ ์ผ ์์ ์์)๊ฐ ํ์ ์ ์ผ ์์ ์์นํ๊ธฐ ๋๋ฌธ์ด๋ค.
e.g. top (-0.9, -0.5, -0.1) bottom
๊ทธ๋ฆฌ๊ณ ํจ์์์ ํ๋ฅ ์ ๋ฐํํ ๋ -1์ ๊ณฑํ ๊ฐ์ ๋ฐํํ๋ฉด ๋๋ค.
Source code: https://github.com/sungjin122517/leetcode/blob/main/graph/path-with-max-probability.cpp
Reference: https://www.youtube.com/watch?v=OHJpOGa_L34
Leave a comment