ํ
ํ๋ฆฟ ์ฝ๋์์ if cur_v not in costs: ๋ถ๋ถ์ ์๋ฌธ์ด ์์ต๋๋ค.
์ง๋ฌธํ๊ณ ๋์ ์ง๋ฌธ์ด ์ ๋งคํด์ ์ ๋๋ก ๋ ๋๋ต์ ๋ชป๋ค์ ๊บผ๋ผ๊ณ ์์ํ๋๋ฐ ์ ๊ฐ ์๊ฐํ ์์ง๋ฅผ ์ ๋ง ์ ์๊ฐํด์ ๋๋ตํด์ฃผ์
จ๋ค์. ๊ฐ์ฌํฉ๋๋ค. ๋๋ถ์ ์ ๋งคํ๋ ์๊ฐ๋ค์ด ์๋ฒฝํ๊ฒ ์ดํด๋์ต๋๋ค.์ ๊ฐ ์ดํดํ๋๋ฐ ๋์์ด ๋์๋ ์๊ฐ์ ์ ์ด๋ณด์๋ฉดํต์ฌ์ BFS์ฒ๋ผ ๋๋น๋ฅผ์ฐ์ ์ ์ผ๋ก ํ์ํ๋ฉด์ Heap์ ์ฐ์ ์์๊ฐ ํฉ์ณ์ ธ์ costs์ ๋ฃ์ ๊ฐ๋ณด๋ค ๋์ค์ ํ์๋ ๊ฐ์ด ๋ ์ฐ์ ์์๊ฐ ๋์์ ์๋ค ๋ผ๊ณ ์๊ฐํ์ต๋๋ค.DFS์ฒ๋ผ ์ฝ๋๊ฐ ์ ํ์๋ค๋ฉด A->B๊น์ง ํ์ํ๊ณ F๊น์ง ํ์ํ๋ ์๊ฐ์ด(์ฝ๋์์์ ์๊ฐ)A->C->F ๋ณด๋ค ๋จผ์ ์ผ์ด๋ ์ ์์ด์.๊ทธ๋ผ A->B->F๊ฐ A->C->F๋ณด๋ค ์์์ง ํฐ์ง ๋ชจ๋ฅด๋ ์ํ๋ก ๋จผ์ ํ์๋๊ณ ๊ฐ์ด costs์ ๋ค์ด๊ฐ ๋ฒ๋ฆด๊บผ์์. ํ์ง๋ง ๊ฐ๋ฐ๋จ๋
ธ์จ์ ์ฝ๋๋ BFS์ ๊ตฌ์กฐ + Heap์๋ฃ๊ตฌ์กฐ ํํ์ด๊ธฐ ๋๋ฌธ์ ์ผ๋จ ์ฒซ๋ฒ์งธ ๋
ธ๋์์ ์ฐ๊ฒฐ๋ ๋ชจ๋ ๋
ธ๋๋ฅผ ํ์ํ(1->2(5), 1->4(1)๊ฐ ์๋ค๊ณ ๊ฐ์ ) ๋ค์์ ๊ทธ ์ค ์ฐ์ ์์ ๋์ ์ชฝ์ผ๋ก pop์ด ๋๊ณ ๊ทธ ๋ค์์ ๋ ์ฐ์ ์์๊ฐ ๋์ ์ชฝ์ผ๋ก ์ด๋ํฉ๋๋ค. ์ฆ ๋ง์ฝ์ 1->4->? ๋ก ๊ฐ๋ ์ดํฉ์ด 1->2๋ก ๊ฐ๋ ์ฐ์ ์์๋ณด๋ค ๋๋ค๋ฉด 1->2๋ ๋ heap์์ ๋ค๋ก ๋ฐ๋ ค๋ฉ๋๋ค. ์ด๋ ๊ฒ ์๋ํ๋๊น..costs์ ๋ฃ๋ ๊ฐ์ ํญ์ ์ฐ์ ์์๊ฐ ๊ฐ์ฅ ๋์ ๊ฐ์ด ํ์ ๋์์๋ heap์์ pop๋๋ ๊ฑฐ๋ผ๊ณ ์ดํด ํ์ต๋๋ค. ์๋ ์ฒ์์๋ ๋ค๋ฅธ์ฌ๋๋ ์ดํด์ํค๊ฒ ๋ค๊ณ ๊ธ ์ ์๊ฑด๋ฐ ๊ทธ๊ฑด ์ข ํ๋๋ค์. ์จ๋ ์ ๋ ์ดํดํ์ต๋๋ค.๊ฐ์ฌํฉ๋๋ค.