์ตœ๋‹จ๊ฑฐ๋ฆฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜ โทFloyd-Warshall Algorithm

The Floyd-Warshall Algorithm ๋ชจ๋“  ์ •์  ์Œ์— ๋Œ€ํ•ด ๋‘˜ ์‚ฌ์ด์˜ ์ตœ๋‹จ ๊ฑฐ๋ฆฌ๋ฅผ ๊ตฌํ•˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜ Dijkstra/Bellman-Ford ๋ฅผ ๋ฐ˜๋ณตํ•ด์„œ ๊ตฌํ•  ์ˆ˜๋„ ์žˆ์Œ ๊ฒฝ์œ ์  : ๋‘ ์ •์  u์™€ v๋ฅผ ์ž‡๋Š” ์–ด๋–ค ๊ฒฝ๋กœ๊ฐ€ ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•  ๋•Œ, u์™€ v ์‚ฌ์ด์— ์žˆ๋Š” ๋‹ค๋ฅธ ์ •์  1. ๊ฒฝ์œ ์  k๋ฅผ ์ œ์™ธํ•œ S - {k} ๋…ธ๋“œ ์ค‘ ์„œ๋กœ ๋‹ค๋ฅธ ๋…ธ๋“œ U, V ์„ ํƒ (S = ์ •์  ์ง‘ํ•ฉ์ผ ๋•Œ k, U, V โˆˆ S) 2. U โ†’ k โ†’ V์˜ ๋น„์šฉ ํ™•์ธ ํ›„ ์ตœ๋‹จ๊ฑฐ๋ฆฌ ๊ฐฑ์‹  ์ง์ ‘ ํ•ด๋ณด๊ธฐ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ทธ๋ž˜ํ”„๊ฐ€ ์ฃผ์–ด์กŒ๋‹ค๊ณ  ํ•ด๋ณด์ž. Floyd-Warshall ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ Dijkstra์™€ ๋‹ค๋ฅด๊ฒŒ ๋ชจ๋“  ๊ทธ๋ž˜ํ”„์˜ ๋ชจ๋“  ์ •์  ์Œ์˜ ์ตœ๋‹จ ๊ฑฐ๋ฆฌ๋ฅผ ์ €์žฅํ•ด์•ผํ•˜๋ฏ€๋กœ 2์ฐจ์› ๋ฐฐ์—ด์ด ํ•„์š”ํ•˜๋‹ค ์ดˆ๊ธฐํ™” ํ•  ๋•Œ์—๋Š” if from == to, then ..

์ตœ๋‹จ๊ฑฐ๋ฆฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜ โถ Dijkstra Algorithm

(๋ญ ๋Œ€์ถฉ ์ค‘์š”ํ•˜๋‹ค๋Š” ๋‚ด์šฉใ…Ž) ์ตœ๋‹จ ๊ฒฝ๋กœ ๋ฌธ์ œ๋ฅผ ํ’€ ๋•Œ ๊ฐ€์žฅ ๋งŽ์ด ์–ธ๊ธ‰๋˜๊ณ  ํ™œ์šฉ๋˜๋Š” ์‚ผ๋Œ€์žฅ์ด ์žˆ์ฃ ? ๋‹ค์ต์ŠคํŠธ๋ผ ๋ฒจ๋งŒํฌ๋“œ ํ”Œ๋กœ์ด๋“œ ์ƒํ™ฉ์— ๋งž๊ฒŒ ์œ„ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์ ์šฉํ•ด์„œ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋ฉด ๋ ํ…๋ฐ ์–ธ์ œ, ๋ฌด์—‡์„ ์„ ํƒํ•  ์ง€ ๋ชจ๋ฅด๊ฒ ๋‹ค๋ฉด 3๊ฐ€์ง€๋ฅผ ๋– ์˜ฌ๋ ค๋ด…์‹œ๋‹ค. ๋ฌธ์ œ๋ฅผ ๊ทธ๋ž˜ํ”„ํ™” ํ•˜๋Š” ๊ฒƒ์— ์„ฑ๊ณตํ•˜์…จ๋‹ค๋ฉด ์ด์ œ ์ด 3๊ฐ€์ง€ ํ๋ฆ„์„ ์ƒ๊ฐํ•ด ๋ด…์‹œ๋‹ค. ๊ฐ€์ค‘์น˜๊ฐ€ ์žˆ๋Š”๊ฐ€? : ๊ฐ€์ค‘์น˜๊ฐ€ ์—†๋‹ค๋ฉด BFS๋กœ ํ•ด๊ฒฐ ๊ฐ€๋Šฅ ์Œ์ˆ˜๊ฐ„์„ ์ด ์žˆ๋Š”๊ฐ€? : weight์— ์Œ์ˆ˜ ๊ฐ’์ด ์žˆ๋‹ค๋ฉด ๋ฒจ๋งŒํฌ๋“œ ๋‹จ์ผ ์‹œ์ž‘์ ์„ ๊ฐ–๋Š”๊ฐ€? : ๋‹จ์ผ ์‹œ์ž‘์ ์ด ์ฃผ์–ด์ง„๋‹ค๋ฉด ๋‹ค์ต์ŠคํŠธ๋ผ, ๋ชจ๋“  ์ •์ ๋“ค์˜ ์Œ์— ๋Œ€ํ•œ ๊ฒฝ๋กœ ๊ฐ’์„ ์•Œ๊ณ  ์‹ถ๋‹ค๋ฉด ํ”Œ๋กœ์ด๋“œ ์–ด๋–ค ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์“ฐ๋ฉด ๋˜๋Š”์ง€ ์„ ํƒํ•˜์…จ๋‹ค๋ฉด ๊ฐ ์•Œ๊ณ ๋ฆฌ์ฆ˜๋“ค์˜ ๊ฐœ๋…์„ ์งš์–ด๋ณด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ์˜ค๋Š˜์€ Dijkstra Algorithm์— ๋Œ€ํ•ด ๋จผ์ € ์‚ด..

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] Level 1์—์„œ ๋ณผ ๋งŒํ•œ ๋ฌธ์ œ

์ด ๊ธ€์—์„œ๋Š” ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์˜ Level 1 ๋ฌธ์ œ ์ค‘ ๊ผญ ํ•œ ๋ฒˆ์€ ๋‹ค๋ฃจ๊ณ  ๋„˜์–ด๊ฐ”์œผ๋ฉด ์ข‹๊ฒ ๋Š” ๋ฌธ์ œ๋“ค์— ๋Œ€ํ•ด ์‚ดํŽด๋ณด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ๋ฌธ์ œ ํ’€์ด๋Š” C++๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ๊ณ  ํ•จ๊ป˜ ๋“ค์–ด๊ฐ€ ์žˆ๋Š” ๊ฐœ๋…๋“ค๋„ ๊ฐ„๋‹จํžˆ ์ •๋ฆฌ ํ•ด๋ณด๋Š” ํ˜•์‹์œผ๋กœ ์ž‘์„ฑ๋˜์—ˆ์œผ๋ฏ€๋กœ ์˜คํƒ€๋“ฑ์˜ ์˜ค๋ฅ˜๊ฐ€ ์žˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ค๋ฅ˜ ๋ฐœ๊ฒฌ์‹œ ๋Œ“๊ธ€๋กœ ๊ผญ ๋ง์”€ํ•ด์ฃผ์„ธ์š”! ์‹œ์ž‘ํ•ด๋ณผ๊นŒ์š”? ์ผ๋‹จ ์‹œ์ž‘ํ•˜๊ธฐ ์ „, ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค Level 1 ๋ฌธ์ œ์—๋Š” [2019 ์นด์นด์˜ค ๊ฐœ๋ฐœ์ž ๊ฒจ์šธ ์ธํ„ด์‹ญ : ํฌ๋ ˆ์ธ ์ธํ˜•๋ฝ‘๊ธฐ ๊ฒŒ์ž„] [2018 ์นด์นด์˜ค ๋ธ”๋ผ์ธ๋“œ ์ฑ„์šฉ 1์ฐจ : ๋น„๋ฐ€์ง€๋„, ๋‹คํŠธ๊ฒŒ์ž„] [2019 ์นด์นด์˜ค ๋ธ”๋ผ์ธ๋“œ ์ฑ„์šฉ 1์ฐจ : ์‹คํŒจ์œจ] [2018 summer/winter coding : ์˜ˆ์‚ฐ]์ด ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๋ฌธ์ œ๋“ค์€ ์„ ํƒ์ ์œผ๋กœ ํ’€์–ด๋ณด๋Š” ๊ฒƒ์ด ์•„๋‹Œ ๋ฐ˜๋“œ์‹œ ํ’€์–ด๋ณด์•„์•ผ ํ•  ๋ฌธ์ œ์ผํ…Œ๋‹ˆ ๋”ฐ๋กœ ..