๊ทธ๋ž˜ํ”„ ์ €์žฅ์„ ์œ„ํ•œ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ: ๊ธฐ์กด ํ•ญ๋ชฉ ๊ฒ€ํ†  ๋ฐ "๊ฑฐ์˜ ์ƒˆ๋กœ์šด" ํ•ญ๋ชฉ XNUMX๊ฐœ ๊ฒ€ํ† 

์•ˆ๋…• ๋ชจ๋‘

์ด ๋…ธํŠธ์—์„œ ๋‚˜๋Š” ์ปดํ“จํ„ฐ ๊ณผํ•™์—์„œ ๊ทธ๋ž˜ํ”„๋ฅผ ์ €์žฅํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋Š” ์ฃผ์š” ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ๋ฅผ ๋‚˜์—ดํ•˜๊ธฐ๋กœ ๊ฒฐ์ •ํ–ˆ์œผ๋ฉฐ, ๋‚˜์—๊ฒŒ "๊ฒฐ์ •ํ™”"๋œ ๋ช‡ ๊ฐ€์ง€ ๊ตฌ์กฐ์— ๋Œ€ํ•ด์„œ๋„ ๋” ์ด์•ผ๊ธฐํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

๊ทธ๋Ÿผ ์‹œ์ž‘ํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ๋งจ ์ฒ˜์Œ๋ถ€ํ„ฐ ๊ทธ๋Ÿฐ ๊ฒƒ์€ ์•„๋‹™๋‹ˆ๋‹ค. ์ œ ์ƒ๊ฐ์—๋Š” ์šฐ๋ฆฌ ๋ชจ๋‘๊ฐ€ ์ด๋ฏธ ๊ทธ๋ž˜ํ”„๊ฐ€ ๋ฌด์—‡์ธ์ง€, ๊ทธ๋ž˜ํ”„๊ฐ€ ๋ฌด์—‡์ธ์ง€(๋ฐฉํ–ฅ์„ฑ, ๋ฐฉํ–ฅ์„ฑ ์—†์Œ, ๊ฐ€์ค‘์น˜ ๋ถ€์—ฌ, ๊ฐ€์ค‘์น˜ ์—†์Œ, ๋‹ค์ค‘ ๋ชจ์„œ๋ฆฌ ๋ฐ ๋ฃจํ”„ ์œ ๋ฌด)๋ฅผ ์•Œ๊ณ  ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

์ž, ๊ฐ€์ž. "๊ทธ๋ž˜ํ”„ ์ €์žฅ"์„ ์œ„ํ•œ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ์—๋Š” ์–ด๋–ค ์˜ต์…˜์ด ์žˆ๋‚˜์š”?

1. ํ–‰๋ ฌ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ

1.1 ์ธ์ ‘ ํ–‰๋ ฌ. ์ธ์ ‘ ํ–‰๋ ฌ(Adjacency Matrix)์€ ํ–‰๊ณผ ์—ด์˜ ์ œ๋ชฉ์ด ๊ทธ๋ž˜ํ”„์˜ ๊ผญ์ง€์  ๊ฐœ์ˆ˜์— ํ•ด๋‹นํ•˜๋Š” ํ–‰๋ ฌ์ด๋ฉฐ, ๊ฐ ์š”์†Œ a(i,j)์˜ ๊ฐ’์€ ๊ผญ์ง€์  ์‚ฌ์ด์˜ ๊ฐ„์„  ์œ ๋ฌด์— ๋”ฐ๋ผ ๊ฒฐ์ •๋ฉ๋‹ˆ๋‹ค. i์™€ j(๋ฌด๋ฐฉํ–ฅ ๊ทธ๋ž˜ํ”„์˜ ๊ฒฝ์šฐ ์ด๋Ÿฌํ•œ ํ–‰๋ ฌ์€ ๋Œ€์นญ์ด๊ฑฐ๋‚˜ ๋ชจ๋“  ๊ฐ’์„ ์ฃผ ๋Œ€๊ฐ์„  ์œ„์—๋งŒ ์ €์žฅํ•œ๋‹ค๋Š” ๋ฐ ๋™์˜ํ•  ์ˆ˜ ์žˆ์Œ์ด ๋ถ„๋ช…ํ•ฉ๋‹ˆ๋‹ค). ๊ฐ€์ค‘์น˜๊ฐ€ ์ ์šฉ๋˜์ง€ ์•Š์€ ๊ทธ๋ž˜ํ”„์˜ ๊ฒฝ์šฐ a(i,j)๋Š” i์—์„œ j๊นŒ์ง€์˜ ๊ฐ„์„  ์ˆ˜๋กœ ์„ค์ •๋  ์ˆ˜ ์žˆ์œผ๋ฉฐ(๊ทธ๋Ÿฌํ•œ ๊ฐ„์„ ์ด ์—†์œผ๋ฉด a(i,j)= 0), ๊ฐ€์ค‘์น˜๊ฐ€ ์ ์šฉ๋œ ๊ทธ๋ž˜ํ”„์˜ ๊ฒฝ์šฐ์—๋„ ๊ฐ€์ค‘์น˜๋กœ ์„ค์ •๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. (์ด ๋ฌด๊ฒŒ) ์–ธ๊ธ‰๋œ ๊ฐ€์žฅ์ž๋ฆฌ.

1.2 ์‚ฌ๊ฑด ๋งคํŠธ๋ฆญ์Šค. ์ด ๊ฒฝ์šฐ ๊ทธ๋ž˜ํ”„๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ ํ–‰ ๋ฒˆํ˜ธ๊ฐ€ ์ •์  ์ˆ˜์— ํ•ด๋‹นํ•˜๊ณ  ์—ด ๋ฒˆํ˜ธ๊ฐ€ ๋ฏธ๋ฆฌ ๋ฒˆํ˜ธ๊ฐ€ ๋งค๊ฒจ์ง„ ๊ฐ€์žฅ์ž๋ฆฌ์— ํ•ด๋‹นํ•˜๋Š” ํ…Œ์ด๋ธ”์—๋„ ์ €์žฅ๋ฉ๋‹ˆ๋‹ค. ๊ผญ์ง€์ ๊ณผ ๋ชจ์„œ๋ฆฌ๊ฐ€ ์„œ๋กœ ์ผ์น˜ํ•˜๋Š” ๊ฒฝ์šฐ ํ•ด๋‹น ์…€์— 1์ด ์•„๋‹Œ ๊ฐ’์ด ๊ธฐ๋ก๋ฉ๋‹ˆ๋‹ค(๋ฌด๋ฐฉํ–ฅ ๊ทธ๋ž˜ํ”„์˜ ๊ฒฝ์šฐ ๊ผญ์ง€์ ๊ณผ ๋ชจ์„œ๋ฆฌ๊ฐ€ ์ผ์น˜ํ•˜๋ฉด 1์ด ๊ธฐ๋ก๋˜๊ณ  ์ง€ํ–ฅ์„ฑ ๊ทธ๋ž˜ํ”„์˜ ๊ฒฝ์šฐ ๋ชจ์„œ๋ฆฌ๊ฐ€ "1"๋กœ ๊ธฐ๋ก๋จ) ๊ผญ์ง€์ ์—์„œ "์ข…๋ฃŒ"๋˜๊ณ  ์ •์ ์— "ํฌํ•จ"๋œ ๊ฒฝ์šฐ "-1"์ž…๋‹ˆ๋‹ค("๋งˆ์ด๋„ˆ์Šค" ๊ธฐํ˜ธ๋„ ์ˆซ์ž "-1"์— "ํฌํ•จ"๋œ ๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์ด๊ธฐ ๋•Œ๋ฌธ์— ๊ธฐ์–ตํ•˜๊ธฐ ์‰ฝ์Šต๋‹ˆ๋‹ค). ๊ฐ€์ค‘์น˜ ๊ทธ๋ž˜ํ”„์˜ ๊ฒฝ์šฐ 1๊ณผ -XNUMX ๋Œ€์‹  ๊ฐ„์„ ์˜ ์ด ๊ฐ€์ค‘์น˜๋ฅผ ์ง€์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

2. ์—ด๊ฑฐํ˜• ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ

2.1 ์ธ์ ‘ ๋ชฉ๋ก. ๊ธ€์Ž„, ์—ฌ๊ธฐ์„œ๋Š” ๋ชจ๋“  ๊ฒƒ์ด ๊ฐ„๋‹จํ•œ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ๊ทธ๋ž˜ํ”„์˜ ๊ฐ ์ •์ ์€ ์ผ๋ฐ˜์ ์œผ๋กœ ์ฃผ์–ด์ง„ ์ •์ ์— ์ธ์ ‘ํ•œ ๋ชจ๋“  ์ •์ ์˜ ์ˆ˜๋ฅผ ์ €์žฅํ•˜๋Š” ์—ด๊ฑฐํ˜• ๊ตฌ์กฐ(๋ชฉ๋ก, ๋ฒกํ„ฐ, ๋ฐฐ์—ด ๋“ฑ)์™€ ์—ฐ๊ด€๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฐฉํ–ฅ์„ฑ ๊ทธ๋ž˜ํ”„์˜ ๊ฒฝ์šฐ, ํŠน์ง• ์ •์ ์—์„œ "๋ฐฉํ–ฅ์„ฑ" ๊ฐ€์žฅ์ž๋ฆฌ๊ฐ€ ์žˆ๋Š” ์ •์ ๋งŒ ๋ชฉ๋ก์— ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค. ๊ฐ€์ค‘์น˜ ๊ทธ๋ž˜ํ”„์˜ ๊ฒฝ์šฐ ๊ตฌํ˜„์ด ๋” ๋ณต์žกํ•ด์ง‘๋‹ˆ๋‹ค.

2.2 ๊ฐˆ๋น„๋ผˆ ๋ชฉ๋ก. ๊ฝค ๋Œ€์ค‘์ ์ธ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ์ž…๋‹ˆ๋‹ค. Captain Obviousness๊ฐ€ ๋งํ–ˆ๋“ฏ์ด ๊ฐ€์žฅ์ž๋ฆฌ ๋ชฉ๋ก์€ ์‹ค์ œ๋กœ ๊ทธ๋ž˜ํ”„์˜ ๊ฐ€์žฅ์ž๋ฆฌ ๋ชฉ๋ก์ด๋ฉฐ, ๊ฐ ๊ฐ€์žฅ์ž๋ฆฌ๋Š” ์‹œ์ž‘ ์ •์ , ๋ ์ •์ ์œผ๋กœ ์ง€์ •๋ฉ๋‹ˆ๋‹ค(๋ฌด๋ฐฉํ–ฅ ๊ทธ๋ž˜ํ”„์˜ ๊ฒฝ์šฐ ์—ฌ๊ธฐ์„œ ์ˆœ์„œ๋Š” ์ค‘์š”ํ•˜์ง€ ์•Š์ง€๋งŒ ํ†ตํ•ฉ์„ ์œ„ํ•ด์„œ๋Š” ๋‹ค์Œ์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค). ์˜ˆ๋ฅผ ๋“ค์–ด ์ •์ ์„ ์ฆ๊ฐ€ํ•˜๋Š” ์ˆœ์„œ๋กœ ์ง€์ •ํ•˜๊ณ  ๊ฐ€์ค‘์น˜(๊ฐ€์ค‘์น˜ ๊ทธ๋ž˜ํ”„์—๋งŒ ํ•ด๋‹น)๋ฅผ ์ง€์ •ํ•˜๋Š” ๋“ฑ ๋‹ค์–‘ํ•œ ๊ทœ์น™์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

์œ„์— ๋‚˜์—ด๋œ ๋งคํŠธ๋ฆญ์Šค ๋ชฉ๋ก์„ ๋” ์ž์„ธํžˆ(๋ฐ ๊ทธ๋ฆผ๊ณผ ํ•จ๊ป˜) ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์—.

2.3 ์ธ์ ‘ ๋ฐฐ์—ด. ๊ฐ€์žฅ ์ผ๋ฐ˜์ ์ธ ๊ตฌ์กฐ๋Š” ์•„๋‹™๋‹ˆ๋‹ค. ํ•ต์‹ฌ์€ ์ธ์ ‘ ๋ชฉ๋ก์„ ํ•˜๋‚˜์˜ ์—ด๊ฑฐํ˜• ๊ตฌ์กฐ(๋ฐฐ์—ด, ๋ฒกํ„ฐ)๋กœ "ํŒจํ‚น"ํ•˜๋Š” ํ˜•์‹์ž…๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๋ฐฐ์—ด์˜ ์ฒ˜์Œ n๊ฐœ(๊ทธ๋ž˜ํ”„์˜ ์ •์  ์ˆ˜์— ๋”ฐ๋ผ) ์š”์†Œ์—๋Š” ๋™์ผํ•œ ๋ฐฐ์—ด์˜ ์‹œ์ž‘ ์ธ๋ฑ์Šค๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ์œผ๋ฉฐ, ์ด ์ธ๋ฑ์Šค๋ถ€ํ„ฐ ์‹œ์ž‘ํ•˜์—ฌ ์ฃผ์–ด์ง„ ๋ฐฐ์—ด์— ์ธ์ ‘ํ•œ ๋ชจ๋“  ์ •์ ์ด ์—ฐ์†์œผ๋กœ ๊ธฐ๋ก๋ฉ๋‹ˆ๋‹ค.

์—ฌ๊ธฐ์—์„œ (๋‚˜ ์ž์‹ ์—๊ฒŒ) ๊ฐ€์žฅ ์ดํ•ดํ•˜๊ธฐ ์‰ฌ์šด ์„ค๋ช…์„ ์ฐพ์•˜์Šต๋‹ˆ๋‹ค. ejuo.livejournal.com/4518.html

3. ์ธ์ ‘ ๋ฒกํ„ฐ์™€ ์—ฐ๊ด€ ์ธ์ ‘ ๋ฐฐ์—ด

์ „๋ฌธ ํ”„๋กœ๊ทธ๋ž˜๋จธ๋Š” ์•„๋‹ˆ์ง€๋งŒ ์ฃผ๊ธฐ์ ์œผ๋กœ ๊ทธ๋ž˜ํ”„๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ์ด ์ค„์˜ ์ž‘์„ฑ์ž๋Š” ๊ฐ€์žฅ์ž๋ฆฌ ๋ชฉ๋ก์„ ๊ฐ€์žฅ ์ž์ฃผ ์ฒ˜๋ฆฌํ•˜๋Š” ๊ฒƒ์œผ๋กœ ๋‚˜ํƒ€๋‚ฌ์Šต๋‹ˆ๋‹ค. ์‹ค์ œ๋กœ ๊ทธ๋ž˜ํ”„์— ๋ฃจํ”„์™€ ๊ฐ„์„ ์ด ์—ฌ๋Ÿฌ ๊ฐœ ์žˆ์œผ๋ฉด ํŽธ๋ฆฌํ•ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ๊ณ ์ „์ ์ธ ๋ชจ์„œ๋ฆฌ ๋ชฉ๋ก์„ ๊ฐœ๋ฐœํ•  ๋•Œ "๊ฐœ๋ฐœ/๋ถ„๊ธฐ/์ˆ˜์ •/๋Œ์—ฐ๋ณ€์ด", ์ฆ‰ ์ธ์ ‘ ๋ฒกํ„ฐ์™€ ์—ฐ๊ด€ ์ธ์ ‘ ๋ฐฐ์—ด์— ์ฃผ์˜๋ฅผ ๊ธฐ์šธ์ผ ๊ฒƒ์„ ์ œ์•ˆํ•ฉ๋‹ˆ๋‹ค.

3.1 ์ธ์ ‘ ๋ฒกํ„ฐ

์‚ฌ๋ก€ (a1): ๋น„๊ฐ€์ค‘ ๊ทธ๋ž˜ํ”„

๋น„๊ฐ€์ค‘ ๊ทธ๋ž˜ํ”„์— ๋Œ€ํ•œ ์ธ์ ‘ ๋ฒกํ„ฐ๋ฅผ ์ง์ˆ˜ ์ •์ˆ˜(a[2i], a[2i+1],..., ์—ฌ๊ธฐ์„œ i์˜ ๋ฒˆํ˜ธ๋Š” c 0)์˜ ์ˆœ์„œ ์ง‘ํ•ฉ์ด๋ผ๊ณ  ๋ถ€๋ฆ…๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์„œ ๊ฐ ์ˆซ์ž ์Œ์€ a[2i], a[2i+1 ]์€ ์ •์  a[2i]์™€ a[2i+1] ์‚ฌ์ด์˜ ๊ทธ๋ž˜ํ”„ ๊ฐ€์žฅ์ž๋ฆฌ๋ฅผ ๊ฐ๊ฐ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.
์ด ๊ธฐ๋ก ํ˜•์‹์—๋Š” ๊ทธ๋ž˜ํ”„ ๋ฐฉํ–ฅ ์—ฌ๋ถ€์— ๋Œ€ํ•œ ์ •๋ณด๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ์ง€ ์•Š์Šต๋‹ˆ๋‹ค(๋‘ ์˜ต์…˜ ๋ชจ๋‘ ๊ฐ€๋Šฅ). digraph ํ˜•์‹์„ ์‚ฌ์šฉํ•  ๋•Œ ๋ชจ์„œ๋ฆฌ๋Š” a[2i]์—์„œ a[2i+1]๋กœ ํ–ฅํ•˜๋Š” ๊ฒƒ์œผ๋กœ ๊ฐ„์ฃผ๋ฉ๋‹ˆ๋‹ค. ์—ฌ๊ธฐ ๋ฐ ์•„๋ž˜: ๋ฌด๋ฐฉํ–ฅ ๊ทธ๋ž˜ํ”„์˜ ๊ฒฝ์šฐ ํ•„์š”ํ•œ ๊ฒฝ์šฐ ์ •์  ๊ธฐ๋ก ์ˆœ์„œ์— ๋Œ€ํ•œ ์š”๊ตฌ ์‚ฌํ•ญ์„ ์ ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค(์˜ˆ: ํ• ๋‹น๋œ ์ˆซ์ž์˜ ๊ฐ’์ด ๋‚ฎ์€ ์ •์ ์ด ๋จผ์ € ์˜ต๋‹ˆ๋‹ค).

C++์—์„œ๋Š” std::Vector๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ธ์ ‘ ๋ฒกํ„ฐ๋ฅผ ์ง€์ •ํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์ด ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ์˜ ์ด๋ฆ„์ด ๋ฉ๋‹ˆ๋‹ค.

์‚ฌ๋ก€ (a2): ๋น„๊ฐ€์ค‘ ๊ทธ๋ž˜ํ”„, ๊ฐ„์„  ๊ฐ€์ค‘์น˜๋Š” ์ •์ˆ˜์ž…๋‹ˆ๋‹ค.

์‚ฌ๋ก€ (a1)๊ณผ ์œ ์‚ฌํ•˜๊ฒŒ ์ •์ˆ˜ ๊ฐ„์„  ๊ฐ€์ค‘์น˜๋ฅผ ๊ฐ–๋Š” ๊ฐ€์ค‘์น˜ ๊ทธ๋ž˜ํ”„์— ๋Œ€ํ•œ ์ธ์ ‘ ๋ฒกํ„ฐ๋ฅผ ์ˆซ์ž์˜ ์ •๋ ฌ๋œ ์ง‘ํ•ฉ(๋™์  ๋ฐฐ์—ด)(a[3i], a[3i+1], a[3i+2], ..., ์—ฌ๊ธฐ์„œ i์˜ ๋ฒˆํ˜ธ๋Š” c 0), ์—ฌ๊ธฐ์„œ ์ˆซ์ž a[3i], a[3i+1], a[3i+2]์˜ ๊ฐ "์‚ผ์ค‘ํ•ญ"์€ a[3i] ๋ฒˆํ˜ธ์˜ ๊ผญ์ง€์  ์‚ฌ์ด์˜ ๊ทธ๋ž˜ํ”„ ๊ฐ€์žฅ์ž๋ฆฌ๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. ๋ฐ a[3i+1]์ด๋ฉฐ, ๊ฐ’ a [3i+2]๋Š” ์ด ๊ฐ„์„ ์˜ ๊ฐ€์ค‘์น˜์ž…๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๊ทธ๋ž˜ํ”„๋Š” ๋ฐฉํ–ฅ์ด ์ง€์ •๋  ์ˆ˜๋„ ์žˆ๊ณ  ๊ทธ๋ ‡์ง€ ์•Š์„ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

์‚ฌ๋ก€ (b): ๋น„๊ฐ€์ค‘ ๊ทธ๋ž˜ํ”„, ์ •์ˆ˜๊ฐ€ ์•„๋‹Œ ๊ฐ„์„  ๊ฐ€์ค‘์น˜

์˜ˆ๋ฅผ ๋“ค์–ด, ์ด์ข… ์š”์†Œ๋ฅผ ํ•˜๋‚˜์˜ ๋ฐฐ์—ด(๋ฒกํ„ฐ)์— ์ €์žฅํ•˜๋Š” ๊ฒƒ์€ ๋ถˆ๊ฐ€๋Šฅํ•˜๋ฏ€๋กœ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ตฌํ˜„์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ž˜ํ”„๋Š” ํ•œ ์Œ์˜ ๋ฒกํ„ฐ์— ์ €์žฅ๋ฉ๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์„œ ์ฒซ ๋ฒˆ์งธ ๋ฒกํ„ฐ๋Š” ๊ฐ€์ค‘์น˜๋ฅผ ์ง€์ •ํ•˜์ง€ ์•Š์€ ๊ทธ๋ž˜ํ”„์˜ ์ธ์ ‘ ๋ฒกํ„ฐ์ด๊ณ  ๋‘ ๋ฒˆ์งธ ๋ฒกํ„ฐ์—๋Š” ํ•ด๋‹น ๊ฐ€์ค‘์น˜๊ฐ€ ํฌํ•จ๋ฉ๋‹ˆ๋‹ค(C++์— ๋Œ€ํ•œ ๊ตฌํ˜„ ๊ฐ€๋Šฅ: std::pair). ). ๋”ฐ๋ผ์„œ ์ฒซ ๋ฒˆ์งธ ๋ฒกํ„ฐ์˜ ์ธ๋ฑ์Šค 2i, 2i+1 ์•„๋ž˜์— ์žˆ๋Š” ์ •์  ์Œ์œผ๋กœ ์ •์˜๋œ ๊ฐ€์žฅ์ž๋ฆฌ์˜ ๊ฒฝ์šฐ ๊ฐ€์ค‘์น˜๋Š” ๋‘ ๋ฒˆ์งธ ๋ฒกํ„ฐ์˜ ์ธ๋ฑ์Šค i ์•„๋ž˜์— ์žˆ๋Š” ์š”์†Œ์™€ ๋™์ผํ•ฉ๋‹ˆ๋‹ค.

๊ทธ๋ ‡๋‹ค๋ฉด ์ด๊ฒƒ์ด ์™œ ํ•„์š”ํ•œ๊ฐ€์š”?

๊ธ€์Ž„, ์ด ์ค„์˜ ์ €์ž๋Š” ์ด๊ฒƒ์ด ์—ฌ๋Ÿฌ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ๋ฐ ๋งค์šฐ ์œ ์šฉํ•˜๋‹ค๋Š” ๊ฒƒ์„ ์•Œ์•˜์Šต๋‹ˆ๋‹ค. ์Œ, ๊ณต์‹์ ์ธ ๊ด€์ ์—์„œ ๋ณด๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์žฅ์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

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

๊ทธ๋Ÿฌ๋‚˜ ์ด "๋ชฉ๋ก"์ด ๊ฐ€์žฅ์ž๋ฆฌ์— ๋Œ€ํ•œ ๋น ๋ฅธ ์•ก์„ธ์Šค๋ฅผ ์˜๋ฏธํ•˜์ง€๋Š” ์•Š๋Š”๋‹ค๋Š” ์ ์„ ์ธ์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์—ฌ๊ธฐ์„œ ์—ฐ๊ด€ ์ธ์ ‘ ๋ฐฐ์—ด(Associative Adjacency Array)์ด ๊ตฌ์ถœ๋ฉ๋‹ˆ๋‹ค. ์ด์— ๋Œ€ํ•ด์„œ๋Š” ์•„๋ž˜์—์„œ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.

3.2 ์—ฐ๊ด€ ์ธ์ ‘ ๋ฐฐ์—ด

๋”ฐ๋ผ์„œ ํŠน์ • ๊ฐ€์žฅ์ž๋ฆฌ์— ๋Œ€ํ•œ ์•ก์„ธ์Šค, ๊ฐ€์ค‘์น˜ ๋ฐ ๊ธฐํƒ€ ์†์„ฑ์ด ์ค‘์š”ํ•˜๊ณ  ๋ฉ”๋ชจ๋ฆฌ ์š”๊ตฌ ์‚ฌํ•ญ์œผ๋กœ ์ธํ•ด ์ธ์ ‘ ํ–‰๋ ฌ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๋Š” ๊ฒฝ์šฐ ์ธ์ ‘ ๋ฒกํ„ฐ๋ฅผ ๋ณ€๊ฒฝํ•˜์—ฌ ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ์ƒ๊ฐํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ํ‚ค๋Š” ๊ทธ๋ž˜ํ”„์˜ ๊ฐ€์žฅ์ž๋ฆฌ์ด๋ฉฐ, ์ˆœ์„œํ™”๋œ ์ •์ˆ˜ ์Œ์œผ๋กœ ์ง€์ •๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ์–ด๋–ป๊ฒŒ ์ƒ๊ฒผ๋‚˜์š”? ์—ฐ๊ด€ ๋ฐฐ์—ด์˜ ํ‚ค๊ฐ€ ์•„๋‹Œ๊ฐ€์š”? ๊ทธ๋ ‡๋‹ค๋ฉด ๊ตฌํ˜„ํ•ด ๋ณด๋Š” ๊ฒƒ์€ ์–ด๋–จ๊นŒ์š”? ๊ฐ ํ‚ค(์ˆœ์ˆ˜ํ•œ ์ •์ˆ˜ ์Œ)๊ฐ€ ๊ฐ’(๊ฐ€์žฅ์ž๋ฆฌ์˜ ๊ฐ€์ค‘์น˜๋ฅผ ์ง€์ •ํ•˜๋Š” ์ •์ˆ˜ ๋˜๋Š” ์‹ค์ˆ˜)๊ณผ ์—ฐ๊ด€๋˜๋Š” ์—ฐ๊ด€ ๋ฐฐ์—ด์„ ๋งŒ๋“ค์–ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. C++์—์„œ๋Š” std::map ์ปจํ…Œ์ด๋„ˆ(std::map)๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์ด ๊ตฌ์กฐ๋ฅผ ๊ตฌํ˜„ํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค. , int> ๋˜๋Š” std::map , double>) ๋˜๋Š” std::multimap(์—ฌ๋Ÿฌ ๋ชจ์„œ๋ฆฌ๊ฐ€ ์˜ˆ์ƒ๋˜๋Š” ๊ฒฝ์šฐ). ๊ธ€์Ž„์š”, ์šฐ๋ฆฌ๋Š” "ํ–‰๋ ฌ" ๊ตฌ์กฐ๋ณด๋‹ค ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๋œ ์ฐจ์ง€ํ•˜๋Š” ๊ทธ๋ž˜ํ”„ ์ €์žฅ ๊ตฌ์กฐ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๊ณ , ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๋ฃจํ”„์™€ ๋ชจ์„œ๋ฆฌ๊ฐ€ ์žˆ๋Š” ๊ทธ๋ž˜ํ”„๋ฅผ ์ •์˜ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ๊ผญ์ง€์  ๋ฒˆํ˜ธ์˜ ์Œ์ˆ˜๊ฐ€ ์•„๋‹Œ์ง€์— ๋Œ€ํ•œ ์—„๊ฒฉํ•œ ์š”๊ตฌ ์‚ฌํ•ญ๋„ ์—†์Šต๋‹ˆ๋‹ค(๋ชจ๋ฅด๊ฒ ์–ด์š”). ๋ˆ„๊ฐ€ ์ด๊ฒƒ์„ ํ•„์š”๋กœ ํ•˜์ง€๋งŒ ์—ฌ์ „ํžˆ).

4. ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ๋Š” ๊ฝ‰ ์ฐจ ์žˆ์ง€๋งŒ ๋ญ”๊ฐ€ ๋น ์กŒ์Šต๋‹ˆ๋‹ค.

๊ทธ๋ฆฌ๊ณ  ๊ทธ๊ฒƒ์€ ์‚ฌ์‹ค์ž…๋‹ˆ๋‹ค. ๋งŽ์€ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ๋•Œ ๊ทธ๋ž˜ํ”„ ๊ฐ€์žฅ์ž๋ฆฌ์— ๋ช‡ ๊ฐ€์ง€ ํŠน์„ฑ์„ ํ• ๋‹นํ•˜๊ณ  ๊ทธ์— ๋”ฐ๋ผ ์ €์žฅํ•ด์•ผ ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ํŠน์„ฑ์„ ๋ช…ํ™•ํ•˜๊ฒŒ ์ •์ˆ˜๋กœ ์ค„์ด๋Š” ๊ฒƒ์ด ๊ฐ€๋Šฅํ•˜๋‹ค๋ฉด ์ธ์ ‘ ๋ฒกํ„ฐ ๋ฐ ์—ฐ๊ด€ ์ธ์ ‘ ๋ฐฐ์—ด์˜ ํ™•์žฅ ๋ฒ„์ „์„ ์‚ฌ์šฉํ•˜์—ฌ ์ด๋Ÿฌํ•œ "์ถ”๊ฐ€ ํŠน์„ฑ์ด ์žˆ๋Š” ๊ทธ๋ž˜ํ”„"๋ฅผ ์ €์žฅํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด ์ •์ˆ˜๋กœ ์ง€์ •๋œ 2๊ฐœ์˜ ์ถ”๊ฐ€ ๊ธฐ๋Šฅ์„ ์ €์žฅํ•˜๋Š” ๋ฐ ํ•„์š”ํ•œ ๊ฐ ๋ชจ์„œ๋ฆฌ์— ๋Œ€ํ•ด ๊ฐ€์ค‘์น˜๊ฐ€ ์ ์šฉ๋˜์ง€ ์•Š์€ ๊ทธ๋ž˜ํ”„๋ฅผ ๋งŒ๋“ค์–ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ์ด ๊ฒฝ์šฐ ์ธ์ ‘ ๋ฒกํ„ฐ๋ฅผ "์Œ"์ด ์•„๋‹Œ ์ •์ˆ˜ "2์ค‘์ฃผ"(a[2i], a[1i+2], a[2i+2], a)์˜ ์ˆœ์„œ ์ง‘ํ•ฉ์œผ๋กœ ์ •์˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. [3i+2]โ€ฆ) ์—ฌ๊ธฐ์„œ a[2i+2] ๋ฐ a[3i+2]์€ ํ•ด๋‹น ๊ฐ€์žฅ์ž๋ฆฌ์˜ ํŠน์„ฑ์„ ๊ฒฐ์ •ํ•ฉ๋‹ˆ๋‹ค. ๊ฐ„์„ ์˜ ์ •์ˆ˜ ๊ฐ€์ค‘์น˜๋ฅผ ๊ฐ–๋Š” ๊ทธ๋ž˜ํ”„์˜ ๊ฒฝ์šฐ ์ˆœ์„œ๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ ์œ ์‚ฌํ•ฉ๋‹ˆ๋‹ค(์œ ์ผํ•œ ์ฐจ์ด์ ์€ ์†์„ฑ์ด ๊ฐ„์„ ์˜ ๊ฐ€์ค‘์น˜๋ฅผ ๋”ฐ๋ฅด๊ณ  a[3i+2] ๋ฐ a[4i+4] ์š”์†Œ๋กœ ์ง€์ •๋œ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. , ๊ฐ€์žฅ์ž๋ฆฌ ์ž์ฒด๋Š” 5๊ฐ€ ์•„๋‹Œ XNUMX๊ฐœ์˜ ์ˆœ์„œ ๋ฒˆํ˜ธ๋กœ ์ง€์ •๋ฉ๋‹ˆ๋‹ค). ๊ทธ๋ฆฌ๊ณ  ์ •์ˆ˜๊ฐ€ ์•„๋‹Œ ๊ฐ„์„  ๊ฐ€์ค‘์น˜๊ฐ€ ์žˆ๋Š” ๊ทธ๋ž˜ํ”„์˜ ๊ฒฝ์šฐ ํŠน์ง•์€ ๊ฐ€์ค‘์น˜๊ฐ€ ์ ์šฉ๋˜์ง€ ์•Š์€ ๊ตฌ์„ฑ ์š”์†Œ์— ๊ธฐ๋ก๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ •์ˆ˜ ๊ฐ„์„  ๊ฐ€์ค‘์น˜๊ฐ€ ์žˆ๋Š” ๊ทธ๋ž˜ํ”„์— ๋Œ€ํ•ด ์—ฐ๊ด€ ์ธ์ ‘ ๋ฐฐ์—ด์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ ๋‹จ์ผ ์ˆซ์ž๊ฐ€ ์•„๋‹Œ ๊ฐ„์„  ๊ฐ€์ค‘์น˜ ์™ธ์— ํ•„์š”ํ•œ ๋‹ค๋ฅธ ๋ชจ๋“  ๊ฐ’์„ ์ง€์ •ํ•˜๋Š” ์ˆซ์ž ๋ฐฐ์—ด(๋ฒกํ„ฐ)์„ ๊ฐ’์œผ๋กœ ์ง€์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํŠน์ง•. ๋™์‹œ์—, ์ •์ˆ˜๊ฐ€ ์•„๋‹Œ ๊ฐ€์ค‘์น˜์˜ ๊ฒฝ์šฐ ๋ถˆํŽธํ•œ ์ ์€ ๋ถ€๋™ ์†Œ์ˆ˜์  ์ˆซ์ž๋กœ ๋ถ€ํ˜ธ๋ฅผ ์ง€์ •ํ•ด์•ผ ํ•œ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. (์˜ˆ, ๋ถˆํŽธํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๊ทธ๋Ÿฌํ•œ ๋ถ€ํ˜ธ๊ฐ€ ๋งŽ์ง€ ์•Š๊ณ  ๊ทธ๋ ‡์ง€ ์•Š์€ ๊ฒฝ์šฐ ๋„ˆ๋ฌด "๊นŒ๋‹ค๋กญ๊ฒŒ" ์ด์ค‘์œผ๋กœ ์„ค์ •ํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค. ๊ทธ๋Ÿฌ๋ฉด ์•„๋ฌด๊ฒƒ๋„ ์•„๋‹ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Š” C++์—์„œ ํ™•์žฅ๋œ ์—ฐ๊ด€ ์ธ์ ‘ ๋ฐฐ์—ด์„ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ •์˜ํ•  ์ˆ˜ ์žˆ์Œ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค: std::map , std::๋ฒกํ„ฐ> ๋˜๋Š” std::map , std::๋ฒกํ„ฐ, ์—ฌ๊ธฐ์„œ "ํ‚ค-๊ฐ’-๋ฒกํ„ฐ"์˜ ์ฒซ ๋ฒˆ์งธ ๊ฐ’์€ ๊ฐ€์žฅ์ž๋ฆฌ์˜ ๊ฐ€์ค‘์น˜๊ฐ€ ๋˜๊ณ  ๊ทธ ๋‹ค์Œ์—๋Š” ํ•ด๋‹น ํŠน์„ฑ์˜ ์ˆซ์ž ์ง€์ •์ด ์œ„์น˜ํ•ฉ๋‹ˆ๋‹ค.

๋ฌธํ•™ :

์ผ๋ฐ˜์ ์ธ ๊ทธ๋ž˜ํ”„ ๋ฐ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ •๋ณด:

1. Cormen, Thomas H., Leiserson, Charles I., Rivest, Ronald L., Stein, Clifford. ์•Œ๊ณ ๋ฆฌ์ฆ˜: ๊ตฌ์„ฑ ๋ฐ ๋ถ„์„, 2ํŒ: Trans. ์˜์–ด๋กœ๋ถ€ํ„ฐ โ€“ M.: ์œŒ๋ฆฌ์—„์Šค ์ถœํŒ์‚ฌ, 2011.
2. ํ•˜๋ผ๋ฆฌ ํ”„๋žญํฌ. ๊ทธ๋ž˜ํ”„ ์ด๋ก . M.: ๋ฏธ๋ฅด, 1973.
๋™์ผํ•œ ๋ฒกํ„ฐ ๋ฐ ์ธ์ ‘ ์š”์†Œ์˜ ์—ฐ๊ด€ ๋ฐฐ์—ด์— ๋Œ€ํ•œ ์ €์ž์˜ ๋ณด๊ณ ์„œ:
3. Chernoukhov S.A. ๊ทธ๋ž˜ํ”„๋ฅผ ํ‘œํ˜„ํ•˜๊ณ  ์ €์žฅํ•˜๋Š” ๋ฐฉ๋ฒ•์œผ๋กœ์„œ์˜ ์ธ์ ‘ ๋ฒกํ„ฐ ๋ฐ ์—ฐ๊ด€ ์ธ์ ‘ ๋ฐฐ์—ด / SA Chernouhov. ๊ทธ๋ž˜ํ”„๋ฅผ ํ‘œํ˜„ํ•˜๊ธฐ ์œ„ํ•œ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ๋กœ์„œ์˜ ์ธ์ ‘ ๋ฒกํ„ฐ ๋ฐ ์ธ์ ‘ ๋งต // ๊ตญ์ œ ๊ณผํ•™ ๋ฐ ์‹ค๋ฌด ํšŒ์˜์˜ ๊ธฐ์‚ฌ ๋ชจ์Œ "ํ˜์‹ ์ ์ธ ๊ฐœ๋ฐœ ๊ฒฐ๊ณผ ๊ตฌํ˜„ ๋ฌธ์ œ ๋ฐ ์ด๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ๋ฐฉ๋ฒ•"(Saratov, 14.09.2019๋…„ 2019์›” 65์ผ) โ€“ Sterlitamak: AMI, 69, p. XNUMX-XNUMX
์ฃผ์ œ์— ๋Œ€ํ•œ ์œ ์šฉํ•œ ์˜จ๋ผ์ธ ์†Œ์Šค:
4. prog-cpp.ru/data-graph
5. ejuo.livejournal.com/4518.html

์ถœ์ฒ˜ : habr.com

์ฝ”๋ฉ˜ํŠธ๋ฅผ ์ถ”๊ฐ€