๋ชฉ๋ก๊ทธ๋ž˜ํ”„์ˆœํšŒ๋ฌธ์ œ (2)

๐˜š๐˜ญ๐˜ฐ๐˜ธ ๐˜ฃ๐˜ถ๐˜ต ๐˜ด๐˜ต๐˜ฆ๐˜ข๐˜ฅ๐˜บ

[์•Œ๊ณ ๋ฆฌ์ฆ˜] ๊ทธ๋ž˜ํ”„ ์ˆœํšŒ ๋ฌธ์ œ - 2. ๋„ˆ๋น„ ์šฐ์„  ํƒ์ƒ‰(BFS)

'์ฝ”๋”ฉ ํ…Œ์ŠคํŠธ๋ฅผ ์œ„ํ•œ ์ž๋ฃŒ ๊ตฌ์กฐ์™€ ์•Œ๊ณ ๋ฆฌ์ฆ˜ with C++' ๋ฅผ ์ฐธ๊ณ ํ•˜์—ฌ ์ž‘์„ฑํ•˜์˜€์Šต๋‹ˆ๋‹ค. ๊นŠ์ด ์šฐ์„  ํƒ์ƒ‰(DFS) ๋ณด๋Ÿฌ๊ฐ€๊ธฐ 2.2.3 ๋„ˆ๋น„ ์šฐ์„  ํƒ์ƒ‰ ; Breadth-First Search ๋„ˆ๋น„ ์šฐ์„  ํƒ์ƒ‰(BFS)์€ ์‹œ์ž‘ ์ •์ ๊ณผ ๊ฐ€๊นŒ์šด ์ •์ ๋ถ€ํ„ฐ ๋ฐ˜๋ณต์ ์œผ๋กœ ํƒ์ƒ‰ํ•ด๋‚˜๊ฐ€๋Š” ๋ฐฉ์‹์„ ์˜๋ฏธํ•œ๋‹ค. ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋ชจ์–‘์˜ ๊ทธ๋ž˜ํ”„๊ฐ€ ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•œ๋‹ค. 0๋ฒˆ์งธ ์ •์ ์„ ์‹œ์ž‘์œผ๋กœ ์ž‘์€ ๊ฐ’๋ถ€ํ„ฐ ์ฐพ์•„๊ฐ„๋‹ค๊ณ  ๊ฐ€์ •ํ–ˆ์„ ๋•Œ, BFS ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์ ์šฉํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ˆœ์„œ๋กœ ์ง„ํ–‰๋œ๋‹ค. 1๋‹จ๊ณ„ : 0๋ฒˆ ์ •์  ๋ฐฉ๋ฌธ 2๋‹จ๊ณ„ : 0๋ฒˆ ์ •์ ๊ณผ ์ธ์ ‘ํ•œ ์ •์  ์ค‘ ๊ฐ€์žฅ ๊ฐ’์ด ์ž‘์€ 1๋ฒˆ ์ •์  ๋ฐฉ๋ฌธ 3๋‹จ๊ณ„ : 0๋ฒˆ ์ •์ ๊ณผ ์ธ์ ‘ํ•œ ์ •์  ์ค‘ ๋ฐฉ๋ฌธํ•˜์ง€ ์•Š์•˜๊ณ , ๊ฐ€์žฅ ๊ฐ’์ด ์ž‘์€ 2๋ฒˆ ์ •์  ๋ฐฉ๋ฌธ 4๋‹จ๊ณ„ : 0๋ฒˆ ์ •์ ๊ณผ ์ธ์ ‘ํ•œ ์ •์  ์ค‘ ๋ฐฉ๋ฌธํ•˜์ง€ ์•Š์€ 3๋ฒˆ ์ •์  ๋ฐฉ๋ฌธ 5..

[์•Œ๊ณ ๋ฆฌ์ฆ˜] ๊ทธ๋ž˜ํ”„ ์ˆœํšŒ ๋ฌธ์ œ - 1. ๊นŠ์ด ์šฐ์„  ํƒ์ƒ‰(DFS)

'์ฝ”๋”ฉ ํ…Œ์ŠคํŠธ๋ฅผ ์œ„ํ•œ ์ž๋ฃŒ ๊ตฌ์กฐ์™€ ์•Œ๊ณ ๋ฆฌ์ฆ˜ with C++' ๋ฅผ ์ฐธ๊ณ ํ•˜์—ฌ ์ž‘์„ฑํ•˜์˜€์Šต๋‹ˆ๋‹ค. ๋”๋ณด๊ธฐ 1. ๊ทธ๋ž˜ํ”„ ; Graph 1.1 ๊ฐœ๋… ๊ทธ๋ž˜ํ”„ ์ˆœํšŒ ๋ฌธ์ œ๋ฅผ ๋“ค์–ด๊ฐ€๊ธฐ ์ „ ์งง๊ฒŒ ๊ทธ๋ž˜ํ”„์— ๋Œ€ํ•ด ์„ค๋ช…ํ•˜์ž๋ฉด, ๊ทธ๋ž˜ํ”„๋Š” ์ •์ (vertex)์˜ ์ง‘ํ•ฉ๊ณผ ์ •์ ๋“ค์„ ์„œ๋กœ ์ž‡๋Š” ๊ฐ„์„ (edge)์˜ ์ง‘ํ•ฉ์œผ๋กœ ๊ตฌ์„ฑ๋œ ์ž๋ฃŒ๊ตฌ์กฐ๋กœ ์—ฐ๊ฒฐ๋˜์–ด ์žˆ๋Š” ๊ฐ์ฒด ๊ฐ„์˜ ๊ด€๊ณ„๋ฅผ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค. ์ˆ˜ํ•™์ ์œผ๋กœ๋Š” G = (v๋Š” ์ •์ , e๋Š” ๊ฐ„์„ ์˜ ์ง‘ํ•ฉ) ํ˜•ํƒœ๋กœ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค. ๊ฐ„์„  ๋ฐฉํ–ฅ์˜ ์œ ๋ฌด์— ๋”ฐ๋ผ ๋ฐฉํ–ฅ ๊ทธ๋ž˜ํ”„(directed graph)์™€ ๋ฌด๋ฐฉํ–ฅ ๊ทธ๋ž˜ํ”„(undirected graph)๋กœ ๋‚˜๋ˆŒ ์ˆ˜ ์žˆ๊ณ , ๊ฐ„์„ ์˜ ๊ฐ€์ค‘์น˜ ์œ ๋ฌด์— ๋”ฐ๋ผ ๊ฐ€์ค‘ ๊ทธ๋ž˜ํ”„(weighted graph)์™€ ๋น„๊ฐ€์ค‘ ๊ทธ๋ž˜ํ”„(unweighted graph)๋กœ ๋‚˜๋ˆˆ๋‹ค. 2. ๊ทธ๋ž˜ํ”„ ์ˆœํšŒ ๋ฌธ์ œ..