๋ชฉ๋กpython (5)

๐Ÿ“ ์ ์–ด์„œ ๋จธ๋ฆฟ์†์œผ๋กœ

[Algorithm] ํ”Œ๋กœ์ด๋“œ ์™€์ƒฌ(Floyd Warshall) ์•Œ๊ณ ๋ฆฌ์ฆ˜(ft.ํŒŒ์ด์ฌ)

๐Ÿšฉ ํ”Œ๋กœ์ด๋“œ ์™€์ƒฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ํŒŒ์ด์ฌ ๊ตฌํ˜„ ํ”Œ๋กœ์ด๋“œ ์™€์ƒฌ์€ ๋‹ค์ต์ŠคํŠธ๋ผ ์•Œ๊ณ ๋ฆฌ์ฆ˜๊ณผ ๊ฐ™์ด ์ตœ๋‹จ๊ฑฐ๋ฆฌ ํ˜น์€ ์ตœ์†Œ๋น„์šฉ์„ ๊ตฌํ•˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์ž…๋‹ˆ๋‹ค. ํ”Œ๋กœ์ด๋“œ ์™€์ƒฌ์€ ๋‹ค์ต์ŠคํŠธ๋ผ ์•Œ๊ณ ๋ฆฌ์ฆ˜๊ณผ๋Š” ๋‹ฌ๋ฆฌ ๋ชจ๋“  ๋…ธ๋“œ์—์„œ ๋‹ค๋ฅธ ๋ชจ๋“  ๋…ธ๋“œ๋“ค๊นŒ์ง€์˜ ์ตœ์†Œ ๊ฑฐ๋ฆฌ(ํ˜น์€ ์ตœ์†Œ๋น„์šฉ)์„ ๊ตฌํ•˜๊ธฐ ๋•Œ๋ฌธ์— "์–ด๋”˜๊ฐ€๋ฅผ ๊ฒฝ์œ ํ•œ๋‹ค."๋ผ๋Š” ์กฐ๊ฑด์ด ์ฃผ์–ด์งˆ ๋•Œ, ์‚ฌ์šฉ์„ ๊ณ ๋ คํ•˜๊ธฐ ์ข‹์€ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ž…๋‹ˆ๋‹ค. ๋‹ค๋งŒ, ์ถœ๋ฐœ์ (s), ๋„์ฐฉ์ง€์ (e), ๊ฒฝ์œ ์ง€(p)์— ๋ชจ๋“  ๋…ธ๋“œ๋ฅผ ๊ณ ๋ คํ•ด์•ผํ•˜๋ฏ€๋กœ ์‹œ๊ฐ„ ๋ณต์žก๋„๋Š” O(N^3)์œผ๋กœ ํฐ ํŽธ ์ž…๋‹ˆ๋‹ค. ์ฆ‰, ๋ฌธ์ œ์—์„œ ์ฃผ์–ด์ง„ ๋…ธ๋“œ(N)์˜ ์ตœ๋Œ“๊ฐ’์„ ๊ณ ๋ คํ•ด ๋ฏธ๋ฆฌ ๊ณ„์‚ฐํ•ด ์‚ฌ์šฉํ•  ๊ฐ€์น˜๊ฐ€ ์žˆ๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์ธ์ง€ ๊ณ ๋ คํ•ด๋ด์•ผํ•ฉ๋‹ˆ๋‹ค. โœ๏ธ ํ”Œ๋กœ์ด๋“œ ์™€์ƒฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์œ„ ๊ทธ๋ฆผ์˜ ๊ฒฝ์šฐ๋Š” ์ถœ๋ฐœ์ง€์ ์ด 1๋ฒˆ ๋…ธ๋“œ, ๋„์ฐฉ์ง€์ ์ด 4๋ฒˆ ๋…ธ๋“œ์ธ ๊ฒฝ์šฐ ์ž…๋‹ˆ๋‹ค. 1 -> 4๋กœ ๊ฐ€๋Š”๊ฒŒ ๊ฒฝ์œ ..

Programming/Algorithm 2022. 5. 1. 17:58
์ƒ์•  ์ฒซ ๋ฐฐํฌ ํ”„๋กœ๊ทธ๋žจ - ์žฌํƒ๊ทผ๋ฌด ๋„์šฐ๋ฏธ

ํ”„๋กœ๊ทธ๋ž˜๋ฐ์— ์ฒ˜์Œ ํฅ๋ฏธ๋ฅผ ๋А๊ปด๋ณธ ๊ฒƒ์ด ํ•™๋ถ€์‹œ์ ˆ ์ž๋™ํ™” ํ”„๋กœ๊ทธ๋žจ์„ ๊ฒฝํ—˜ํ•œ ํ›„์˜€๋‹ค. ํŒŒ์ด์ฌ ์ž์ฒด๊ฐ€ ํŽธ๋ฆฌํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋กœ ๋น ๋ฅด๊ณ  ๊ฐ„๋‹จํ•œ ์ž๋™ํ™” ํ”„๋กœ๊ทธ๋žจ์„ ๋งŒ๋“ค๊ธฐ์— ์ฐธ ์ข‹์€ ๊ฒƒ ๊ฐ™๋‹ค. ์•ฝ๊ฐ„์˜ ๊ณ„๊ธฐ๊ฐ€ ์ƒ๊ฒจ์„œ ๊ฐ„๋‹จํ•˜๋ฉด์„œ ์žฌ๋ฐŒ๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ๋งŒ๋“ค๊ณ  ์‹ถ์–ด์„œ "์žฌํƒ๊ทผ๋ฌด ๋„์šฐ๋ฏธ"๋ผ๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ๋งŒ๋“ค์–ด๋ดค๋‹ค. โ–ถ ๋ฌด์Šจ ํ”„๋กœ๊ทธ๋žจ์ผ๊นŒ? ์‚ฌ์‹ค ๊ฑฐ์ฐฝํ•œ ์ด๋ฆ„์— ๋น„ํ•ด์„œ ์ƒ๋‹นํžˆ ํ—ˆ์ €..ใ…‚? ๊ฐ„๋‹จํ•œ ํ”„๋กœ๊ทธ๋žจ์ด๋‹ค. ํŠน๋ณ„ํ•œ ๊ธฐ๋Šฅ์€ ์—†๊ณ  ํ”„๋กœ๊ทธ๋žจ์„ ์‹คํ–‰ํ•˜๋ฉด ๋งˆ์šฐ์Šค๋ฅผ ์ž๋™์œผ๋กœ ์›€์ง์—ฌ์„œ ํ™”๋ฉด ๊บผ์ง์„ ๋ฐฉ์ง€ํ•ด์ค€๋‹ค. โ–ถ ์™œ ๋งŒ๋“ค์—ˆ์„๊นŒ? ๋ณ„๋กœ ์“ธ๋ชจ์—†์–ด ๋ณด์ด๋Š” ์ด ํ”„๋กœ๊ทธ๋žจ์„ ๋งŒ๋“  ๊ณ„๊ธฐ๊ฐ€ ์žˆ๋Š”๋ฐ ์ฝ”๋กœ๋‚˜๋กœ ์ธํ•ด์„œ ์นœ๋ˆ„๋‚˜๊ฐ€ ์žฌํƒ๊ทผ๋ฌด๋ฅผ ํ•˜๋Š” ์‹œ๊ฐ„์ด ์ƒ๋Œ€์ ์œผ๋กœ ๋งŽ์•„์กŒ๋‹ค. ์‚ฌ๋‚ด์˜ ์›๊ฒฉ ํ”„๋กœ๊ทธ๋žจ์„ ์ด์šฉํ•˜๋Š”๋ฐ ์ด ํ”„๋กœ๊ทธ๋žจ์ด ์ผ์ • ์‹œ๊ฐ„ ๋™์•ˆ ์‚ฌ์šฉ์ž ์ž…๋ ฅ(ํ‚ค๋ณด๋“œ, ๋งˆ์šฐ์Šค ์‚ฌ์šฉ)..

Programming/Phython 2021. 12. 29. 20:08