๊ด€๋ฆฌ ๋ฉ”๋‰ด

๋ชฉ๋ก์ „์ฒด ๊ธ€ (352)

DATA101

[ํŒŒ์ด์ฌ] ๋ฆฌ์ŠคํŠธ ๊ด€๋ จ ํ•จ์ˆ˜: append, sort, reverse, insert, count, remove

์•ˆ๋…•ํ•˜์„ธ์š”, ์˜ค๋Š˜์€ ๋ฆฌ์ŠคํŠธ(list) ๋ฐ์ดํ„ฐ ํƒ€์ž…์— ์œ ์šฉํ•œ ํ•จ์ˆ˜๋กœ์„œ append(), sort(), reverse(), insert(), count(), remove()์— ๋Œ€ํ•ด ์†Œ๊ฐœํ•ด ๋“œ๋ฆฝ๋‹ˆ๋‹ค. ๋‚ด์šฉ์ด ๊ฐ„๋‹จํ•˜๋‹ˆ ์•„๋ž˜ ํ‘œ์™€ ์˜ˆ์‹œ๋ฅผ ์ฐธ๊ณ ํ•ด ์ฃผ์„ธ์š”! ํ‘œ ์‚ฌ์šฉ๋ชฉ์  ๋ฐ ์„ค๋ช… ๋ฉ”์„œ๋“œ ์‹œ๊ฐ„ ๋ณต์žก๋„ ๋ฐ์ดํ„ฐ ์ถ”๊ฐ€(๋งจ ๋’ค์—์„œ๋ถ€ํ„ฐ ์ถ”๊ฐ€) ๋ฆฌ์ŠคํŠธ ์ด๋ฆ„.append(์ถ”๊ฐ€ํ•  ๋ฐ์ดํ„ฐ) \(O(1)\) ๋ฐ์ดํ„ฐ ์ •๋ ฌ(์˜ค๋ฆ„์ฐจ์ˆœ ์ •๋ ฌ) ๋ฆฌ์ŠคํŠธ ์ด๋ฆ„.sort() \(O(NlogN)\) ๋ฐ์ดํ„ฐ ์ •๋ ฌ(๋‚ด๋ฆผ์ฐจ์ˆœ ์ •๋ ฌ) ๋ฆฌ์ŠคํŠธ ์ด๋ฆ„.sort(reverse = True) \(O(NlogN)\) ๋ฆฌ์ŠคํŠธ ๋‚ด ์›์†Œ ์ˆœ์„œ ๋’ค์ง‘๊ธฐ ๋ฆฌ์ŠคํŠธ ์ด๋ฆ„.reverse() \(O(N)\) ํŠน์ • ์ธ๋ฑ์Šค์— ์›์†Œ ์‚ฝ์ž… ๋ฆฌ์ŠคํŠธ ์ด๋ฆ„.insert(์‚ฝ์ž…ํ•  ์œ„์น˜์˜ ์ธ๋ฑ์Šค, ์‚ฝ์ž…ํ•  ..

SW ๊ฐœ๋ฐœ/Python 2021. 4. 16. 10:16
[์ž๋ฃŒ๊ตฌ์กฐ] ๊ทธ๋ž˜ํ”„ ์ž๋ฃŒ๊ตฌ์กฐ์™€ ํŠธ๋ฆฌ ์ž๋ฃŒ๊ตฌ์กฐ์˜ ์ฐจ์ด์— ๋Œ€ํ•ด ์•Œ์•„๋ณด์ž!

์•ˆ๋…•ํ•˜์„ธ์š”, ์˜ค๋Š˜์€ ๊ทธ๋ž˜ํ”„(graph) ์ž๋ฃŒ๊ตฌ์กฐ์™€ ํŠธ๋ฆฌ(tree) ์ž๋ฃŒ๊ตฌ์กฐ์˜ ์ฐจ์ด์— ๋Œ€ํ•ด ์•Œ์•„๋ด…๋‹ˆ๋‹ค. ๊ทธ๋ž˜ํ”„ ์ž๋ฃŒ๊ตฌ์กฐ์— ๋Œ€ํ•œ ์ž์„ธํ•œ ์„ค๋ช…์€ ์•„๋ž˜ ๋งํฌ๋ฅผ ์ฐธ๊ณ ํ•ด ์ฃผ์„ธ์š”! heytech.tistory.com/66 [์ž๋ฃŒ๊ตฌ์กฐ] ๊ทธ๋ž˜ํ”„ ์ž๋ฃŒ๊ตฌ์กฐ์— ๋Œ€ํ•ด ์•Œ์•„๋ณด์ž!(๋…ธ๋“œ, ๊ฐ„์„ ) ์•ˆ๋…•ํ•˜์„ธ์š”, ์˜ค๋Š˜์€ ๊ทธ๋ž˜ํ”„(graph) ์ž๋ฃŒ๊ตฌ์กฐ์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ž˜ํ”„ ์ž๋ฃŒ๊ตฌ์กฐ์˜ ๊ตฌ์„ฑ ๊ทธ๋ž˜ํ”„๋Š” ๊ทธ๋ฆผ 1 ๊ณผ ๊ฐ™์ด ๋…ธ๋“œ(Node)์™€ ๊ฐ„์„ (Edge)์œผ๋กœ ํ‘œํ˜„๋ฉ๋‹ˆ๋‹ค. ์ด๋•Œ ๋…ธ๋“œ๋Š” ์ •์ (Vertext)์ด๋ผ๊ณ ๋„ heytech.tistory.com ๋‚ด์šฉ์ด ๊ฐ„๋‹จํ•˜๋ฏ€๋กœ ์•„๋ž˜ ํ‘œ 1 ๊ณผ ๊ฐ™์ด ์ •๋ฆฌํ•ด ๋ณผ ์ˆ˜ ์žˆ์„ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ๊ทธ๋ž˜ํ”„ ์ž๋ฃŒ๊ตฌ์กฐ ํŠธ๋ฆฌ ์ž๋ฃŒ๊ตฌ์กฐ ๋ฐฉํ–ฅ์„ฑ(directionality) ๋ฌด-/๋ฐฉํ–ฅ ๊ทธ๋ž˜ํ”„ only ๋ฐฉํ–ฅ ๊ทธ๋ž˜ํ”„ ์ˆœํ™˜์„ฑ(circ..

ํ”Œ๋กœ์ด๋“œ ์›Œ์…œ(Floyd-Warshall) ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ดํ•ด(+Python ๊ตฌํ˜„)

๋ณธ ํฌ์ŠคํŒ…์—์„œ๋Š” ์ตœ๋‹จ๊ฒฝ๋กœ(๊ธธ ์ฐพ๊ธฐ)์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ค‘์—์„œ๋„ ํ”Œ๋กœ์ด๋“œ-์›Œ์…œ ์•Œ๊ณ ๋ฆฌ์ฆ˜์— ๋Œ€ํ•ด ์•Œ์•„๋ด…๋‹ˆ๋‹ค. ๐Ÿ“š ๋ชฉ์ฐจ 1. ์ตœ๋‹จ๊ฒฝ๋กœ(๊ธธ ์ฐพ๊ธฐ) ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด๋ž€? 2. ํ”Œ๋กœ์ด๋“œ-์›Œ์…œ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๊ฐœ๋… 3. ํ”Œ๋กœ์ด๋“œ-์›Œ์…œ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ํŠน์ง• 4. ํ”Œ๋กœ์ด๋“œ ์›Œ์…œ ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ๋™์ž‘ ๊ณผ์ • 5. ํ”Œ๋กœ์ด๋“œ ์›Œ์…œ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๊ตฌํ˜„(Python) 1. ์ตœ๋‹จ๊ฒฝ๋กœ(๊ธธ์ฐพ๊ธฐ) ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด๋ž€? ์ตœ๋‹จ๊ฒฝ๋กœ ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ๊ธธ์ฐพ๊ธฐ ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด๋ผ๊ณ ๋„ ๋ถˆ๋ฆฌ๋ฉฐ, ๋ง ๊ทธ๋Œ€๋กœ ํŠน์ • ์ง€์ ๊นŒ์ง€ ๊ฐ€์žฅ ๋น ๋ฅด๊ฒŒ ๋„๋‹ฌํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒฝ๋กœ๋ฅผ ์ฐพ๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์ž…๋‹ˆ๋‹ค. ์ด๋ฒˆ ํฌ์ŠคํŒ…์—์„œ๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜ ํ…Œ์ŠคํŠธ์—์„œ ๋นˆ์ถœ ์ตœ๋‹จ๊ฒฝ๋กœ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์œ ํ˜• 2๊ฐ€์ง€ ์ค‘ 2๋ฒˆ์งธ, ํ”Œ๋กœ์ด๋“œ-์›Œ์…œ ์•Œ๊ณ ๋ฆฌ์ฆ˜์— ๋Œ€ํ•ด ์•Œ์•„๋ด…๋‹ˆ๋‹ค. ๋‹ค์ต์ŠคํŠธ๋ผ ์ตœ๋‹จ๊ฒฝ๋กœ ์•Œ๊ณ ๋ฆฌ์ฆ˜(Dijkstra Algorithm) ํ”Œ๋กœ์ด๋“œ-์›Œ์…œ ์•Œ๊ณ ๋ฆฌ์ฆ˜(Floyd-Warshal..

[ํŒŒ์ด์ฌ] ๋ฆฌ์ŠคํŠธ ์ปดํ”„๋ฆฌํ—จ์…˜(list comprehension)์— ๋Œ€ํ•ด ์•Œ์•„๋ณด์ž!

๊ฐ„๋‹จํ•œ ๋‚ด์šฉ์ด๋ฏ€๋กœ ๋ฐ”๋กœ ๋ณธ๋ก ์œผ๋กœ ๋“ค์–ด๊ฐ€์ฃ ! 1. ์ •์˜ ๋ฐ ํŠน์ง• ๋ฆฌ์ŠคํŠธ ์ปดํ”„๋ฆฌํ—จ์…˜(comprehension)์€ ๋ฆฌ์ŠคํŠธ๋ฅผ ์ดˆ๊ธฐํ™”ํ•˜๋Š” ๋ฐฉ๋ฒ• ์ค‘ ํ•˜๋‚˜๋กœ์„œ ๋Œ€๊ด„ํ˜ธ('[]') ์•ˆ์— ์กฐ๊ฑด๋ฌธ์ด๋‚˜ ๋ฐ˜๋ณต๋ฌธ์„ ๋„ฃ๋Š” ๋ฐฉ์‹์œผ๋กœ ๋ฆฌ์ŠคํŠธ๋ฅผ ์ดˆ๊ธฐํ™”ํ•˜๋Š” ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค. ๋ฆฌ์ŠคํŠธ ์ปดํ”„๋ฆฌํ—จ์…˜์€ ํ•„์š”ํ•œ ๋ฆฌ์ŠคํŠธ๋ฅผ ์ƒ์„ฑํ•  ๋•Œ ๋ณด๋‹ค ๊ฐ„๊ฒฐํ•˜๊ณ  ์ง๊ด€์ ์œผ๋กœ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ๋„๋ก ๋„์™€์ค๋‹ˆ๋‹ค. ์•„๋ž˜ ์˜ˆ์‹œ์™€ ํ•จ๊ป˜ ์‚ดํŽด๋ณด์ฃ . 2. ์˜ˆ์‹œ1: ์ผ๋ฐ˜์ ์ธ ๋ฆฌ์ŠคํŠธ ์ƒ์„ฑ ๋ฐฉ๋ฒ•๊ณผ ๋น„๊ต ์˜ˆ์‹œ๋กœ์„œ ๊ฐ„๋‹จํ•˜๊ฒŒ 1๋ถ€ํ„ฐ 100๊นŒ์ง€์˜ ์ •์ˆ˜ ์ค‘์—์„œ ์ง์ˆ˜๋งŒ ํฌํ•จํ•˜๋Š” ๋ฆฌ์ŠคํŠธ๋ฅผ ์ƒ์„ฑํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ํŠนํžˆ ๋ฐ˜๋ณต๋ฌธ๊ณผ ์กฐ๊ฑด๋ฌธ์„ ๊ฐ๊ฐ ๋‚˜๋ˆ„์–ด ์‚ฌ์šฉํ•˜์—ฌ ๋ฆฌ์ŠคํŠธ๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๋ฐฉ๋ฒ•๊ณผ ๋‚˜๋ˆ„์–ด ์‚ดํŽด๋ณด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. (1) ์ผ๋ฐ˜์ ์ธ ๋ฐฉ๋ฒ• ๋จผ์ €, ๋ฆฌ์ŠคํŠธ๋ฅผ ์ง์ ‘ ์ƒ์„ฑํ•˜๊ณ , ๋ฐ˜๋ณต๋ฌธ์„ ์ˆ˜ํ–‰ํ•˜๊ณ  ๊ทธ ์•ˆ์—์„œ ์กฐ๊ฑด๋ฌธ์„ ์ˆ˜ํ–‰..

SW ๊ฐœ๋ฐœ/Python 2021. 4. 13. 09:51
๋‹ค์ต์ŠคํŠธ๋ผ ์ตœ๋‹จ ๊ฒฝ๋กœ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ดํ•ด (+Python ๊ตฌํ˜„)

๐Ÿ“š ๋ชฉ์ฐจ 1. ์ตœ๋‹จ๊ฒฝ๋กœ(๊ธธ์ฐพ๊ธฐ) ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด๋ž€? 2. ๋‹ค์ต์ŠคํŠธ๋ผ ์ตœ๋‹จ๊ฒฝ๋กœ ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด๋ž€? 3. ๋‹ค์ต์ŠคํŠธ๋ผ ์ตœ๋‹จ๊ฒฝ๋กœ ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ๋™์ž‘ ๊ณผ์ • 4. ๊ตฌํ˜„ ๋ฐฉ๋ฒ•1: ์ผ๋ฐ˜์ ์ธ ๊ตฌํ˜„ 4.1. ์ฝ”๋“œ ํ•ด์„ค 4.2. ์ „์ฒด ์ฝ”๋“œ 4.3. ์‹œ๊ฐ„ ๋ณต์žก๋„ 5. ๊ตฌํ˜„ ๋ฐฉ๋ฒ•2: ์‹œ๊ฐ„ ๋ณต์žก๋„ ๊ฐœ์„  5.1. ์šฐ์„ ์ˆœ์œ„ ํ(Priority Queue) ์ž๋ฃŒ๊ตฌ์กฐ 5.2. ํž™(Heap) ์ž๋ฃŒ๊ตฌ์กฐ 5.3. ์šฐ์„ ์ˆœ์œ„ ํ ์ž๋ฃŒ๊ตฌ์กฐ ๊ธฐ๋ฐ˜์˜ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋™์ž‘ ๊ณผ์ • 5.4. ์šฐ์„ ์ˆœ์œ„ ํ ์ž๋ฃŒ๊ตฌ์กฐ ๊ธฐ๋ฐ˜ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๊ตฌํ˜„(Python) 1. ์ตœ๋‹จ๊ฒฝ๋กœ(๊ธธ์ฐพ๊ธฐ) ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด๋ž€? ์ตœ๋‹จ๊ฒฝ๋กœ ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ๊ธธ์ฐพ๊ธฐ ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด๋ผ๊ณ ๋„ ๋ถˆ๋ฆฌ๋ฉฐ, ๋ง ๊ทธ๋Œ€๋กœ ํŠน์ • ์ง€์ ๊นŒ์ง€ ๊ฐ€์žฅ ๋น ๋ฅด๊ฒŒ ๋„๋‹ฌํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒฝ๋กœ๋ฅผ ์ฐพ๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์ž…๋‹ˆ๋‹ค. ์•Œ๊ณ ๋ฆฌ์ฆ˜ ํ…Œ์ŠคํŠธ์—์„œ ๋นˆ์ถœ ์ตœ๋‹จ๊ฒฝ๋กœ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์œ ํ˜•์€ ์•„๋ž˜์™€ ๊ฐ™์Šต๋‹ˆ..

[์ž๋ฃŒ๊ตฌ์กฐ] ํž™(Heap) ์ž๋ฃŒ๊ตฌ์กฐ์— ๋Œ€ํ•ด ์•Œ์•„๋ณด์ž!(+Python ๊ตฌํ˜„)

๐Ÿ“š ๋ชฉ์ฐจ 1. ํž™ ์ž๋ฃŒ๊ตฌ์กฐ 2. ํž™ ์ž๋ฃŒ๊ตฌ์กฐ๋Š” ์–ธ์ œ ์‚ฌ์šฉํ• ๊นŒ? 3. ํž™ ์ž๋ฃŒ๊ตฌ์กฐ์˜ ์ข…๋ฅ˜ 4. ํž™ ์ž๋ฃŒ๊ตฌ์กฐ์˜ ๋™์ž‘ ๊ณผ์ •(์ตœ์†Œ ํž™) 4.1. ๋ฐ์ดํ„ฐ ์‚ฝ์ž… 4.2. ๋ฐ์ดํ„ฐ ์‚ญ์ œ 5. ํž™ ์ž๋ฃŒ๊ตฌ์กฐ ๊ตฌํ˜„(Python) 5.1. heapq ์…‹์—… 5.2. ํž™ ๋ฐ์ดํ„ฐ ์‚ฝ์ž…(heappush) 5.3. ํž™ ๋ฐ์ดํ„ฐ ์‚ญ์ œ(heappop) 5.4. ๋ฆฌ์ŠคํŠธ๋ฅผ ํž™์œผ๋กœ ๋ณ€๊ฒฝ(heapify) 1. ํž™ ์ž๋ฃŒ๊ตฌ์กฐ ํž™ ์ž๋ฃŒ๊ตฌ์กฐ๋Š” ๊ฐ€์žฅ ๋†’์€(ํ˜น์€ ๊ฐ€์žฅ ๋‚ฎ์€) ์šฐ์„ ์ˆœ์œ„(e.g., ์ตœ๋Œ“๊ฐ’, ์ตœ์†Ÿ๊ฐ’)๋ฅผ ๊ฐ€์ง€๋Š” ๋…ธ๋“œ๋ฅผ ๋น ๋ฅด๊ฒŒ ์ฐพ์•„๋‚ด๊ธฐ ์œ„ํ•ด ๊ณ ์•ˆ๋œ *์™„์ „ ์ด์ง„ํŠธ๋ฆฌ(Complete Binary Tree) ๊ธฐ๋ฐ˜์˜ ์ž๋ฃŒ๊ตฌ์กฐ์ž…๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ๊ฐ€์žฅ ๋†’์€(๋˜๋Š” ๊ฐ€์žฅ ๋‚ฎ์€) ์šฐ์„ ์ˆœ์œ„๋ฅผ ๊ฐ€์ง€๋Š” ๋…ธ๋“œ๊ฐ€ ํ•ญ์ƒ ๋ฃจํŠธ ๋…ธ๋“œ(root node)์— ์˜ค๋Š” ๊ฒŒ ํŠน์ง•์ž…๋‹ˆ๋‹ค. * ์™„..

[์ž๋ฃŒ๊ตฌ์กฐ] ์šฐ์„ ์ˆœ์œ„ ํ(Priority Queue)์— ๋Œ€ํ•ด ์•Œ์•„๋ณด์ž!(+Python ๊ตฌํ˜„)

๐Ÿ“š ๋ชฉ์ฐจ 1. ์šฐ์„ ์ˆœ์œ„ ํ(Priority Queue)๋ž€? 2. ํž™(Heap) ์ž๋ฃŒ๊ตฌ์กฐ 2.1. ํž™ ์ž๋ฃŒ๊ตฌ์กฐ๋ž€? 2.2. ์šฐ์„ ์ˆœ์œ„ ํ ๊ตฌํ˜„ ๋ฐฉ์‹: ๋ฆฌ์ŠคํŠธ vs ํž™ 3. ํž™ ๊ธฐ๋ฐ˜์˜ ์šฐ์„ ์ˆœ์œ„ ํ ๊ตฌํ˜„(Python) 3.1. heapq ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์†Œ๊ฐœ 3.1.1. ํž™ ์›์†Œ ์ถ”๊ฐ€(heappush) 3.1.2. ํž™ ์›์†Œ ์‚ญ์ œ(heappop) 3.1.3. ๋ฆฌ์ŠคํŠธ๋ฅผ ํž™์œผ๋กœ ๋ณ€๊ฒฝ(heapify) 3.2. ํž™ ๊ธฐ๋ฐ˜์˜ ์šฐ์„ ์ˆœ์œ„ ํ ๊ตฌํ˜„ ์˜ˆ์‹œ 1. ์šฐ์„ ์ˆœ์œ„ ํ(Priority Queue)๋ž€? ์šฐ์„ ์ˆœ์œ„ ํ๋Š” ๋ง ๊ทธ๋Œ€๋กœ ์šฐ์„ ์ˆœ์œ„๊ฐ€ ๊ฐ€์žฅ ๋†’์€ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์žฅ ๋จผ์ € ์ถ”์ถœํ•˜๋Š” ์ž๋ฃŒ๊ตฌ์กฐ์ž…๋‹ˆ๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ ํ(Queue) ์ž๋ฃŒ๊ตฌ์กฐ๋Š” ์„ ์ž…์„ ์ถœ ๋ฐฉ์‹์œผ๋กœ์„œ ๊ฐ€์žฅ ๋จผ์ € ์‚ฝ์ž…๋œ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์žฅ ๋จผ์ € ์ถ”์ถœํ•ฉ๋‹ˆ๋‹ค. ๊ฐ„๋‹จํ•˜๊ฒŒ ํŠน์ง•์ด ์œ ์‚ฌํ•œ ์ž๋ฃŒ๊ตฌ์กฐ๋“ค์˜ ..

[์ž๋ฃŒ๊ตฌ์กฐ] ๊ทธ๋ž˜ํ”„ ์ž๋ฃŒ๊ตฌ์กฐ์— ๋Œ€ํ•ด ์•Œ์•„๋ณด์ž!(๋…ธ๋“œ, ๊ฐ„์„ , ๋ฃจํŠธ ๋…ธ๋“œ, ๊นŠ์ด, ๋†’์ด, ์ฐจ์ˆ˜)

๋ณธ ํฌ์ŠคํŒ…์—์„œ๋Š” ๊ทธ๋ž˜ํ”„(graph) ์ž๋ฃŒ๊ตฌ์กฐ์— ๋Œ€ํ•ด ์•Œ์•„๋ด…๋‹ˆ๋‹ค. ๊ทธ๋ž˜ํ”„ ์ž๋ฃŒ๊ตฌ์กฐ์˜ ๊ตฌ์„ฑ ๊ทธ๋ž˜ํ”„๋Š” ๊ทธ๋ฆผ 1 ๊ณผ ๊ฐ™์ด ๋…ธ๋“œ(Node)์™€ ๊ฐ„์„ (Edge)์œผ๋กœ ํ‘œํ˜„๋ฉ๋‹ˆ๋‹ค. ์ด๋•Œ ๋…ธ๋“œ๋Š” ์ •์ (Vertext)์ด๋ผ๊ณ ๋„ ๋ถˆ๋ฆฝ๋‹ˆ๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ ๋…ธ๋“œ์™€ ๊ฐ„์„ ์€ ๊ฐ๊ฐ ๋„์‹œ์™€ ๋„์‹œ๋ฅผ ์ž‡๋Š” ๋„๋กœ๋ฅผ ์˜ˆ์‹œ๋กœ ๋งŽ์ด ํ‘œํ˜„๋ฉ๋‹ˆ๋‹ค. ์ฆ‰, A ๋„์‹œ(๋…ธ๋“œ)์™€ B ๋„์‹œ(๋…ธ๋“œ)๊ฐ€ ์žˆ์„ ๋•Œ, A ๋„์‹œ์—์„œ B ๋„์‹œ๋กœ ์ด๋™ํ•˜๊ธฐ ์œ„ํ•ด ๋„๋กœ(๊ฐ„์„ )๋ฅผ ๊ฑฐ์นœ๋‹ค๊ณ  ์ƒ๊ฐํ•˜์‹œ๋ฉด ๋…ธ๋“œ์™€ ๊ฐ„์„ ์— ๋Œ€ํ•œ ์ดํ•ด๊ฐ€ ์‰ฌ์šธ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ทธ๋ž˜ํ”„ ํƒ์ƒ‰? ๊ทธ๋ž˜ํ”„ ํƒ์ƒ‰์ด๋ž€ ํ•˜๋‚˜์˜ ๋…ธ๋“œ์—์„œ ์‹œ์ž‘ํ•ด์„œ ๋‹ค๋ฅธ ๋…ธ๋“œ๋“ค์„ ๋ฐฉ๋ฌธํ•˜๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ๋…ธ๋“œ ์ธ์ ‘? ๋‘ ๋…ธ๋“œ๊ฐ€ ๊ฐ„์„ ์œผ๋กœ ์—ฐ๊ฒฐ๋˜์–ด ์žˆ๋‹ค๋ฉด, '๋‘ ๋…ธ๋“œ๋Š” ์ธ์ ‘(Adjacent)ํ•ด ์žˆ๋‹ค'๋ผ๊ณ  ๋งํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ž˜ํ”„ ์ž๋ฃŒ๊ตฌ์กฐ ๊ด€๋ จ ์šฉ์–ด ์ •๋ฆฌ ๊ทธ๋ž˜ํ”„(ํŠธ..