๋ณธ ๊ฒ์๊ธ์ PC๋ฒ์ ์ ์ต์ ํ ๋์ด์์ต๋๋ค.
์ ๋ ฅ
์ ๋ ฅ ํ์ผ์ ์ฒซ ๋ฒ์งธ ์ค์ ํ ์คํธ ์ผ์ด์ค์ ์๋ฅผ ์๋ฏธํ๋ ์์ฐ์ T๊ฐ ์ฃผ์ด์ง๋ค. ๊ทธ ๋ค์์๋ T๊ฐ์ ํ ์คํธ ์ผ์ด์ค๊ฐ ์ฃผ์ด์ง๋ค.
๊ฐ ํ ์คํธ ์ผ์ด์ค์ ์ฒซ ์ค์๋ ๊ณตํญ์ ์ N (2 ≤ N ≤ 100), ์ด ์ง์๋น์ฉ M (0 ≤ M ≤ 10,000), ํฐ์ผ์ ๋ณด์ ์ K (0 ≤ K ≤ 10,000)๊ฐ ๊ณต๋ฐฑ์ผ๋ก ๊ตฌ๋ถ๋์ด ์ฃผ์ด์ง๋ค. ์ด์ด์ K๊ฐ์ ์ค์ ๊ฑธ์ณ ๊ฐ ํฐ์ผ์ ์ถ๋ฐ๊ณตํญ u, ๋์ฐฉ๊ณตํญ v (1 ≤ u, v ≤ N, u ≠ v), ๋น์ฉ c (1 ≤ c ≤ M, ์ ์), ๊ทธ๋ฆฌ๊ณ ์์์๊ฐ d (1 ≤ d ≤ 1,000) ๊ฐ ๊ณต๋ฐฑ์ผ๋ก ๊ตฌ๋ถ๋์ด ์ฃผ์ด์ง๋ค. ์ธ์ฒ์ ์ธ์ ๋ 1๋ฒ ๋์์ด๊ณ , LA๋ ์ธ์ ๋ N๋ฒ ๋์์ด๋ค
์ถ๋ ฅ
๊ฐ ํ ์คํธ ์ผ์ด์ค๋น ํ ์ค์ ์ฐฌ๋ฏผ์ด LA์ ๋์ฐฉํ๋ ๋ฐ ๊ฑธ๋ฆฌ๋ ๊ฐ์ฅ ์งง์ ์์์๊ฐ์ ์ถ๋ ฅํ๋ค.
๋ง์ฝ, LA์ ๋์ฐฉํ ์ ์๋ ๊ฒฝ์ฐ "Poor KCM"์ ์ถ๋ ฅํ๋ค.
ํด๊ฒฐ ๋ฐฉ๋ฒ
์ด ๋ฌธ์ ๋ฅผ ์ฒ์ ์ ํ์ ๋๋ ์์ ์๊ฐ์ ์ฐ์ ์ผ๋ก ํ์ํ๋ ๋น์ฉ๊น์ง ๊ณ ๋ คํด์ผํ๋ ๋ฌธ์ ๋ผ๊ณ ์๊ฐํ๋ค.
์์ ์๊ฐ์ด ์งง์ ์์ผ๋ก ์ต๋จ ๊ฒฝ๋ก๋ฅผ ํ์ํ๋ฉด์ ์ต๋จ ๊ฒฝ๋ก์ ๋น์ฉ์ด ์ด ์ง์ ๋น์ฉ์ ์ด๊ณผํด๋ฒ๋ฆฌ๋ ๊ฒฝ์ฐ์
Poor KCM์ ์ถ๋ ฅํ๋ฉด ๋๋ ๊ฐ๋จํ(?) ๋ฌธ์ ๋ผ๊ณ ์๊ฐํ๋ค.
๊ทธ๋ ๊ฒ ๊ตฌํ์ ํ๊ณ ์คํ์ ๋๋ ธ๋๋ฐ?
์ด ๋ฌธ์ ๋ ๊ตฌ๊ธ๋ง์ ํตํด ํด๊ฒฐํ ๋ฌธ์ ์ด๋ค...ใ
์ด ๋ฌธ์ ์์ ์ค์ํ ์ ์ ์์ ์๊ฐ์ ์งง์ง๋ง ๋น์ฉ์ด ๋น์ผ ๊ฒฝ์ฐ, ์์ ์๊ฐ์ ๊ธธ์ง๋ง ๋น์ฉ์ด ์ผ ๊ฒฝ์ฐ ์์ ๋ ๊ฒฝ์ฐ๋ฅผ ๋ชจ๋ ํ์ํด์ผํ๋ค๋ ๊ฒ์ด๋ค. ๋จ์ํ ์์ ์๊ฐ์ผ๋ก ๋ค์ต์คํธ๋ผ๋ฅผ ๋๋ฆฌ๊ฒ ๋๋ฉด ๋น์ฐํ ์์ ์๊ฐ์ด ์งง์ ๊ฒฝ๋ก๋ก ๋ค์ต์คํธ๋ผ๊ฐ ์งํ๋๊ณ ์ฐ๋ฆฌ๊ฐ ์ํ๋ ๊ฒฐ๊ณผ๋ฅผ ์ป์ ์ ์๊ฒ ๋ ์๋ ์๋ค. (๊ทธ๋์ ํ๋ฆฌ๊ธฐ๋ ํ๊ณ ...) ์๋ฌดํผ ๊ตฌ๊ธ๋ง์ ํตํด ์ป์ ๊ฒ์ DP๋ฅผ ํตํด ํด๊ฒฐํ๊ณ ์์๋ค.
์ฐ์ ๋ด๊ฐ ์ฒ์์ผ๋ก ๊ตฌํํ ์ฝ๋์ด๋ค.
์ผ๋ฐ์ ์ธ ๋ค์ต์คํธ๋ผ์ ํ ๊ฐ์ง ๊ฐ์ค์น(๋น์ฉ)์ ์ถ๊ฐํ์ฌ ์ต๋จ ์์ ์๊ฐ ๊ฒฝ๋ก๋ก ์งํํ์ ๊ฒฝ์ฐ์ ๋น์ฉ์ ์ ์ฅํ๋๋ก ๊ตฌํํ๋ค.
์ฃผ์ด์ง ์ ๋ ฅ ๊ฐ์์๋ ๋ฌธ์ ๊ฐ ์์๋ค. ํ์ง๋ง ์ญ์ ๋ฐ๋ก.
๋ค์๊ณผ ๊ฐ์ ์ํฉ์ ๊ณ ๋ คํด๋ณด์.
์์์ ์ธ๊ธํ๋ ๊ฒ์ฒ๋ผ ๋ด๊ฐ ๊ตฌํํ ๋ค์ต์คํธ๋ผ๋ ์์์๊ฐ์ ๊ธฐ์ค์ผ๋ก ์ต๋จ๊ฑฐ๋ฆฌ๋ฅผ ํ์ํ๋ฏ๋ก
1. ์์ ์๊ฐ์ ์งง์ง๋ง ๋น์ฉ์ด ๋น์ผ ๊ฒฝ์ฐ
2. ์์ ์๊ฐ์ ๊ธธ์ง๋ง ๋น์ฉ์ด ์ผ ๊ฒฝ์ฐ
๋น์ฐํ 1๋ฒ ๊ฒฝ๋ก๋ก ์งํํ๊ฒ ๋๋ค. ํ์ง๋ง 1๋ฒ ๊ฒฝ๋ก์ ๋น์ฉ์ด ์ด ์ง์๋น์ฉ์ ์ด๊ณผํ๊ฒ ๋๋ฉด Poor KCM์ด ์ถ๋ ฅ๋ ๊ฒ์ด๋ค.
2๋ฒ ๊ฒฝ๋ก๊ฐ ๋น๋ก 1๋ฒ ๊ฒฝ๋ก๋ณด๋ค๋ ์์ ์๊ฐ์ ์งง์ง๋ง ๋น์ฉ์ด ์ด ์ง์๋น์ฉ ์ด๋ด๋ก ๋ค์ด์ฌ ์ ์๊ธฐ ๋๋ฌธ์ 2๋ฒ ๊ฒฝ๋ก๋ก๋ ์งํ์ด ๊ฐ๋ฅํ ์๋ ์๋๋ฐ ๋ง์ด๋ค. ๊ฒฐ๊ณผ์ ์ผ๋ก ๋ก์ง ์์ฒด๊ฐ ๋ฌธ์ ๊ฐ ์์๊ณ ๊ฐ์์์ด์ผํ๋ค.
๊ตฌ๊ธ๋ง์ ํตํด ์ป์ ์ฝ๋๋ DP๋ฅผ ํตํด ํด๊ฒฐํ๊ณ ์์๋ค.
"์ฃผ์ด์ง ์ ์ X ์ด ์ง์๋น์ฉ" ํฌ๊ธฐ์ ๋ฐฐ์ด์ ์์ฑํ๊ณ INF๋ก ์ด๊ธฐํ ํด์คฌ๋ค.
ํ๋ง๋๋ก ๋ชจ๋ ์ ์ ์ ๋ํด ์ด ์ง์๋น์ฉ ์ด๋ด์ ํด๋นํ๋ ๋ชจ๋ ๊ธ์ก์ผ๋ก ํ์์ ์งํํ๋ค๋ ์๋ฏธ์๋ค.
์ถ๋ฐ ์ง์ ์ 1๋ฒ ๊ณตํญ, 1๋ฒ ๊ณตํญ์ ๋ํ ๋น์ฉ์ 0์, ์์์๊ฐ๋ 0์ด๋ฏ๋ก clock[1][0] = 0์ด ๋๋ค.
์ดํ ๋ค์ต์คํธ๋ผ์ ๊ฐ๊ฒ ์กฐ๊ฑด์ ํ์ํด์ DP ๊ฐ์ ๋ณ๊ฒฝํด์ฃผ๋ฉด ๋๋ค.
์ต์ข ์ ์ผ๋ก ๋์ฐฉ ๊ณตํญ(=N)์ ์ต์๊ฐ์ ๋ฆฌํดํด์ฃผ๋ฉด ๋๋๋ฐ ๊ทธ ์ด์ ๋ ๊ฐ๋จํ๋ค.
DP๋ ํ์ฌ 2์ฐจ์๋ฐฐ์ด๋ก ์ ์ธ๋์ด ์๋๋ฐ MIN(DP[N])์ ํ๊ฒ ๋๋ฉด ๋์ฐฉ ๊ณตํญ์ ๊ฐ ์ ์๋ ์ต์ ์์ ์๊ฐ์ ์ฐพ์ ์ ์๊ธฐ ๋๋ฌธ์ด๋ค. ๋ง์ฝ ์ด ๊ฐ์ด INF์ธ ๊ฒฝ์ฐ ๋์ฐฉ ๊ณตํญ์ ๋๋ฌํ ์ ์๋ ๊ฒฝ์ฐ์ด๋ฏ๋ก "Poor KCM"์ ์ถ๋ ฅํ๋ฉด ๋๋ค.
์ด๋์ ๊ณจ๋1 ๋ฌธ์ ์๋๋ณด๋ค. ์๊ฐ์ ๋ ๋ฒ ํ๊ฒ ๋ง๋๋ ๋ฌธ์ ๋ค. ๋ถ๋ฐํ์.
ํ์ด์ฌ์ผ๋ก ๊ตฌํํ ์ฝ๋์ด๋ค.
'โ๏ธ ์ฝํ ์ค๋น > Shortest Path' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[์ต๋จ ๊ฒฝ๋ก] [Python / C++] 1956. ์ด๋ - GOLD โ ฃ (3) | 2021.04.16 |
---|