๐Ÿ‘ฉ‍๐Ÿ’ป ํ”„๋กœ๊ทธ๋ž˜๋ฐ/๐ŸŽ ์•Œ๊ณ ๋ฆฌ์ฆ˜

1. KMP ์•Œ๊ณ ๋ฆฌ์ฆ˜ํŒจํ„ด์„ ๋ฌธ์žฅ ์•ˆ์—์„œ ์ขŒ์—์„œ ์šฐ๋กœ ๋น„๊ตํ•˜๋Š” ๊ฒƒ. ๋ธŒ๋ฃจํŠธ-ํฌ์Šค ์•Œ๊ณ ๋ฆฌ์ฆ˜๊ณผ ๋‹ค๋ฅด๊ฒŒ ํŒจํ„ด์˜ ์œ„์น˜๋ฅผ ์ข€๋” ํšจ์œจ์ ์œผ๋กœ ์ด๋™์‹œํ‚จ๋‹ค. ํŒจํ„ด๊ณผ ๋ฌธ์žฅ์˜ ๋ถˆ์ผ์น˜๊ฐ€ ๋ฐœ์ƒํ–ˆ์„ ๋•Œ ์ค‘๋ณต์—ฐ์‚ฐ์„ ์ตœ๋Œ€ํ•œ ํ”ผํ•˜๋ฉด์„œ ํŒจํ„ด์„ ์šฐ์ธก์œผ๋กœ ์ด๋™์‹œํ‚จ๋‹ค. ์ด๋ฅผ ์œ„ํ•ด์„œ๋Š” ๋ฌธ์žฅ์˜ ๋ถˆ์ผ์น˜ ๋ฐœ์ƒ ์‹œ, ์–ผ๋งˆ๋งŒํผ ๊ฑด๋„ˆ ๋šœ๋‹ˆ ํ›„์— ๋น„๊ต์—ฐ์‚ฐ์„ ํ•  ๊ฒƒ์ธ๊ฐ€๋ฅผ ํŒ๋‹จํ•˜์—ฌ์•ผ ํ•œ๋‹ค. 2. ์‹คํŒจํ•จ์ˆ˜(ํŒŒ์ด ๋ฐฐ์—ด)KMP ์•Œ๊ณ ๋ฆฌ์ฆ˜์—์„œ ํƒ์ƒ‰ ๋ฌธ์ž์—ด์˜ ์ ‘๋‘์‚ฌ์™€ ์ ‘๋ฏธ์‚ฌ์˜ ์ผ์น˜ ๋ถ€๋ถ„์„ ๊ณ„์‚ฐํ•˜์—ฌ ๋ฐฐ์—ด์˜ ํ˜•ํƒœ๋กœ ์ €์žฅํ•˜๋Š” ํ•จ์ˆ˜i๋Š” ์ ‘๋ฏธ์‚ฌ ๊ฐ€๋ฆฌํ‚ค๋Š” ์ธ๋ฑ์Šค, len์€ ์ ‘๋‘์‚ฌ ๊ฐ€๋ฆฌํ‚ค๋Š” ์ธ๋ฑ์Šค7๋ฒˆ์งธ : 6๋ฒˆ์งธ์— len=2, i=5์ผ ๋•Œ, A๊ฐ€ ์ด๋ฏธ ์ผ์น˜ํ–ˆ๋˜ ์‚ฌ์‹ค์„ ์•Œ๊ธฐ ๋•Œ๋ฌธ์— ์ด๋ฅผ ์ด์šฉํ•˜๊ธฐ ์œ„ํ•ด len์€ lps[len-1]๋กœ ์ด๋™ํ•˜๋Š” ๊ฒƒ. ์ด๋Š” KMP ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์›๋ฆฌ์™€ ๋™์ผํ•˜๋‹ค.๋…ธ..
1. ๋ผ๋นˆ-์นดํ”„ ์•Œ๊ณ ๋ฆฌ์ฆ˜๋ผ๋นˆ-์นดํ”„ ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ๋ฌธ์ž์—ด์— ํ•ด์‹ฑ ๊ธฐ๋ฒ•์„ ์‚ฌ์šฉํ•˜์—ฌ ํ•ด์‹œ ๊ฐ’์œผ๋กœ ๋น„๊ตํ•˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜ ํ•ด์‹œ ๊ฐ’์ด ๋‹ค๋ฅด๋‹ค๋ฉด ๋‘ ๋ฌธ์ž์—ด์ด ๋‹ค๋ฅด๋‹ค๋Š” ๊ฒƒ์„ ๋ณด์žฅํ•œ๋‹ค. ํ•˜์ง€๋งŒ ๋ฌธ์ž์—ด์ด ๋‹ฌ๋ผ๋„ ํ•ด์‹œ ๊ฐ’์ด ๊ฐ™์„ ์ˆ˜ ์žˆ๋‹ค.๐Ÿ‘‰ ์šฐ๋ฆฌ๋Š” ์ด๊ฒƒ์„ Spurious Hit์ด๋ผ ํ•œ๋‹ค.Spurious Hit ๋•Œ๋ฌธ์— ํ•ด์‹œ ๊ฐ’์ด ๊ฐ™์„ ๊ฒฝ์šฐ ์ถ”๊ฐ€๋กœ ๋ฌธ์ž์—ด์ด ๊ฐ™์€์ง€ ๋น„๊ตํ•˜๋Š” ์ž‘์—…์ด ํ•„์š”ํ•˜๋‹ค. ์ด ํŠน์ง•์„ ์ด์šฉํ•˜์—ฌ ๋ผ๋นˆ-์นดํ”„ ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ํŒจํ„ด์˜ ํ•ด์‹œ๊ฐ’์„ ํ…์ŠคํŠธ์˜ ๋ถ€๋ถ„ ๋ฌธ์ž์—ด์˜ ํ•ด์‹œ๊ฐ’๊ณผ ์ผ์น˜ํ•˜๋Š”์ง€ ๋น„๊ตํ•˜๋Š” ์ž‘์—…์„ ํ•œ๋‹ค. ๋”ฐ๋ผ์„œ ๋ผ๋นˆ-์นดํ”„ ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ๋‹ค์Œ ๋ฌธ์ž์—ด์— ๋Œ€ํ•œ ํ•ด์‹œ ๊ฐ’์„ ๊ณ„์‚ฐํ•ด์•ผ ํ•œ๋‹ค.๊ธธ์ด๊ฐ€ m์ธ ํŒจํ„ด ์ž์ฒด๊ธธ์ด๊ฐ€ m์ธ ํ…์ŠคํŠธ์˜ ๋ชจ๋“  ๋ถ€๋ถ„ ๋ฌธ์ž์—ด 2. ํ•ด์‹œ ํ•จ์ˆ˜์‚ฌ์šฉ ์˜ˆ์‹œ๐ŸŸฉ rolling hash๊ฐ ์œ„์น˜์—์„œ ํ•ด์‹œ ํ•จ์ˆ˜๋ฅผ ์ฒ˜์Œ๋ถ€ํ„ฐ ๋‹ค์‹œ ..
1. ์™„์ „ํƒ์ƒ‰ ์•Œ๊ณ ๋ฆฌ์ฆ˜์ฆ‰, ๊ฐ€๋Šฅํ•œ ๋ชจ๋“  ๊ฒฝ์šฐ์˜ ์ˆ˜๋ฅผ ๋ชจ๋‘ ํƒ์ƒ‰ํ•˜๋ฉด์„œ ์š”๊ตฌ์กฐ๊ฑด์— ์ถฉ์กฑ๋˜๋Š” ๊ฒฐ๊ณผ๋งŒ์„ ๊ฐ€์ ธ์˜จ๋‹ค.์ด ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ๊ฐ•๋ ฅํ•œ ์ ์€ ์˜ˆ์™ธ ์—†์ด 100% ํ™•๋ฅ ๋กœ ์ •๋‹ต๋งŒ์„ ์ถœ๋ ฅํ•œ๋‹ค. BUT ๊ทธ๋งŒํผ ๋†’์€ ์‹œ๊ฐ„ ๋ณต์žก๋„๋ฅผ ๊ฐ–๋Š”๋‹ค.๋„ˆ๋น„ ์šฐ์„  ํƒ์ƒ‰(BFS)์™€ ๊ด€๋ จ์ด ๊นŠ๋‹ค. ๐ŸŒŸ ์™„์ „ ํƒ์ƒ‰ ์•Œ๊ณ ๋ฆฌ์ฆ˜๊ณผ์˜ ์ฐจ์ด์ ์™„์ „ ํƒ์ƒ‰ ์•Œ๊ณ ๋ฆฌ์ฆ˜ : ๋ชจ๋“  ๊ฒฝ์šฐ์˜ ์ˆ˜๋ฅผ ์ „๋ถ€ ํƒ์ƒ‰ํ•˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜, ๊ทธ ๊ฒฐ๊ณผ๋ฅผ ์ฐพ๋Š” ๊ฒƒ๋ณด๋‹ค ํƒ์ƒ‰ํ•œ๋‹ค๋Š” ๊ณผ์ •์— ์ค‘์ ๋ธŒ๋ฃจํŠธํฌ์Šค ์•Œ๊ณ ๋ฆฌ์ฆ˜ : ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด, ๋ชจ๋“  ๊ฒฝ์šฐ๋ฅผ ํƒ์ƒ‰ํ•˜๊ณ  ๋‹ต์„ ๋„์ถœํ•˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜, ๊ฒฐ๊ณผ๋ฅผ ์ฐพ๋Š” ๊ฒƒ์— ์ค‘์  2. ๋ฌธ์ œ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์ฃผ์–ด์ง„ ๋ฌธ์ œ๋ฅผ ์„ ํ˜• ๊ตฌ์กฐ๋กœ ๊ตฌ์กฐํ™”ํ•œ๋‹ค.๊ตฌ์กฐํ™”๋œ ๋ฌธ์ œ ๊ณต๊ฐ„์„ ์ ์ ˆํ•œ ๋ฐฉ๋ฒ•์œผ๋กœ ํ•ด๋ฅผ ๊ตฌ์„ฑํ•  ๋•Œ๊นŒ์ง€ ํƒ์ƒ‰ํ•œ๋‹ค.๊ตฌ์„ฑ๋œ ํ•ด๋ฅผ ์ •๋ฆฌํ•œ๋‹ค. 3. ์‚ฌ์šฉ ์กฐ๊ฑด ๋ฐ ์˜ˆ์ œ๋ฌธ์ œ์—์„œ ๋‹ฌ์„ฑํ•˜๊ณ ์ž ..
๐ŸŸฉ LCS, ์ตœ์žฅ ๊ณตํ†ต ๋ถ€๋ถ„ ์ˆ˜์—ด Longest Common Subsequence (cf. Longest  Common Substring ์ตœ์žฅ ๊ณตํ†ต ๋ฌธ์ž์—ด) ์ตœ์žฅ ๊ณตํ†ต ๋ถ€๋ถ„ ์ˆ˜์—ด์˜ ๊ฒฝ์šฐ, ๋ถ€๋ถ„์ˆ˜์—ด์ด๊ธฐ ๋•Œ๋ฌธ์— ๋ฌธ์ž ์‚ฌ์ด๋ฅผ ๊ฑด๋„ˆ๋›ฐ์–ด ๊ณตํ†ต๋˜๋ฉด์„œ ๊ฐ€์žฅ ๊ธด ๋ถ€๋ถ„ ๋ฌธ์ž์—ด์„ ์ฐพ์œผ๋ฉด ๋œ๋‹ค.์ตœ์žฅ ๊ณตํ†ต ๋ฌธ์ž์—ด์˜ ๊ฒฝ์šฐ, ๋ถ€๋ถ„ ๋ฌธ์ž์—ด์ด ์•„๋‹ˆ๊ธฐ ๋•Œ๋ฌธ์—, ํ•œ ๋ฒˆ์— ์ด์–ด์ ธ ์žˆ๋Š” ๋ฌธ์ž์—ด๋งŒ ๊ฐ€๋Šฅํ•˜๋‹ค. ๐ŸŸฉ ์ตœ์žฅ ๊ณตํ†ต ๋ฌธ์ž์—ดif i == 0 or j == 0: # ๋งˆ์ง„ ์„ค์ • LCS[i][j] = 0elif string_A[i] == string_B[j]: LCS[i][j] = LCS[i - 1][j - 1] + 1else: LCS[i][j] = 0 LCS๋ผ๋Š” 2์ฐจ์› ๋ฐฐ์—ด์„ ์ด์šฉํ•˜์—ฌ ๋‘ ๋ฌธ์ž์—ด์„ ํ–‰, ์—ด์— ๋งค์นญํ•œ๋‹ค. ํŽธ์˜์ƒ i, j๊ฐ€..
๐ŸŸฉ n๊ฐœ์˜ ํ–‰๋ ฌ์„ ์—ฐ์‡„์ ์œผ๋กœ ๊ณฑํ•  ๋•Œ ์ตœ์†Œ์˜ ๊ธฐ๋ณธ ๊ณฑ์…ˆ ํšŸ์ˆ˜๋ฅผ ๊ฐ–๋Š” ํ–‰๋ ฌ์˜ ๊ณฑ์…ˆ ์ˆœ์„œ๋ฅผ ๊ตฌํ•˜๋Š” ๋ฌธ์ œi x j ํ–‰๋ ฌ๊ณผ j x k ํ–‰๋ ฌ์„ ๊ณฑํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” i x j x k ๋ฒˆ ๋งŒํผ์˜ ๊ณฑ์…ˆ์ด ํ•„์š”ํ•˜๋‹ค.์—ฐ์‡„์ ์œผ๋กœ ํ–‰๋ ฌ์„ ๊ณฑํ•  ๋•Œ ์–ด๋–ค ํ–‰๋ ฌ์„ ๋จผ์ € ์ˆ˜ํ–‰ํ•˜๋Š๋ƒ์— ๋”ฐ๋ผ์„œ ํ•„์š”ํ•œ ์ด ๊ณฑ์…ˆ์˜ ํšŸ์ˆ˜๊ฐ€ ๋‹ฌ๋ผ์ง„๋‹ค.๐ŸŸฉ ์—ฐ์‡„ํ–‰๋ ฌํ–‰๋ ฌ์˜ ๊ณฑ์…ˆ์€ ์•„๋ž˜์™€ ๊ฐ™์ด ๊ฒฐํ•ฉ๋ฒ•์น™์ด ์„ฑ๋ฆฝํ•œ๋‹ค.A x (B x C) = (A x B) x C๊ทธ๋Ÿฌ๋‚˜, ํ–‰๋ ฌ์„ ๊ณฑํ•˜๋Š” ์ˆœ์„œ์— ๋”ฐ๋ผ ๊ณฑํ•˜๋Š” ํšŸ์ˆ˜๊ฐ€ ๋‹ฌ๋ผ์ง„๋‹ค. ๐Ÿ‘‰ ์ฆ‰, ์—ฐ์‡„ํ–‰๋ ฌ ์ตœ์†Œ๊ณฑ์…ˆ ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ํ–‰๋ ฌ๊ณฑ์…ˆ์—์„œ ๊ณฑํ•˜๋Š” ์ˆœ์„œ์— ๋”ฐ๋ผ ๊ณฑ์…‰์˜ ํšŸ์ˆ˜๊ฐ€ ๋‹ฌ๋ผ์ง€๋Š”๋ฐ ์ด๋Ÿฌํ•œ ๋ฒ•์น™์„ ์ด์šฉํ•˜์—ฌ ์ตœ์†Œ๋กœ ๊ณฑํ•˜๋Š” ํšŸ์ˆ˜๋ฅผ ๊ตฌํ•˜๋Š” ๊ฒƒ์ด๋‹ค. ์—ฐ์‡„ํ–‰๋ ฌ ์ตœ์†Œ๊ณฑ์…ˆ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์žฌ๊ท€๊ด€๊ณ„์‹ โœจ ์˜ˆ์ œ๋กœ ์ดํ•ดํ•˜๋ฉด ์‰ฝ๊ฒŒ ์ดํ•ด ๊ฐ€๋Šฅ!EX) A(20x1),..
๐ŸŒŸ ์ตœ๋Œ€ ์œ ๋Ÿ‰ ๋ฌธ์ œ(=๋„คํŠธ์›Œํฌ ํ”Œ๋กœ์šฐ) ํŠน์ •ํ•œ ์ง€์ ์—์„œ ๋‹ค๋ฅธ ์ง€์ ์œผ๋กœ, ์–ผ๋งˆ๋‚˜ ๋งŽ์€ ์œ ๋Ÿ‰์„ ๋™์‹œ์— ๋ณด๋‚ผ ์ˆ˜ ์žˆ๋Š”์ง€ ๊ณ„์‚ฐํ•˜๋Š” ๋ฌธ์ œ โœ๏ธ ์šฉ์–ด ์ •๋ฆฌ ์šฉ๋Ÿ‰ : c(u,v) ์ •์  u์—์„œ v๋กœ ์ „์†กํ•  ์ˆ˜ ์žˆ๋Š” ์ตœ๋Œ€ ์šฉ๋Ÿ‰ ์œ ๋Ÿ‰ : f(u,v) ์ •์  u์—์„œ v๋กœ ์‹ค์ œ ํ๋ฅด๊ณ  ์žˆ๋Š” ์œ ๋Ÿ‰ ์ž”์—ฌ ์šฉ๋Ÿ‰ : r(u,v) = c(u,v) - f(u,v) ๊ฐ„์„ ์˜ ์šฉ๋Ÿ‰๊ณผ ์‹ค์ œ๋กœ ํ๋ฅด๋Š” ์œ ๋Ÿ‰์˜ ์ฐจ์ด ์†Œ์Šค s ๋ชจ๋“  ์œ ๋Ÿ‰์ด ์‹œ์ž‘๋˜๋Š” ์ •์  ์‹ฑํฌ t ๋ชจ๋“  ์œ ๋Ÿ‰์ด ๋„์ฐฉํ•˜๋Š” ์ •์  ์ฆ๊ฐ€ ๊ฒฝ๋กœ ์†Œ์Šค์—์„œ ์‹ฑํฌ๋กœ ์œ ๋Ÿ‰์„ ๋ณด๋‚ผ ์ˆ˜ ์žˆ๋Š” ๊ฒฝ๋กœ โœ๏ธ ๊ธฐ๋ณธ ์†์„ฑ ์šฉ๋Ÿ‰ ์ œํ•œ ์†์„ฑ f(u,v)
๐ŸŸฉ ๋ชจ๋“  ์ •์ ์Œ์— ๋Œ€ํ•ด์„œ ๋‘˜ ์‚ฌ์ด์˜ ์ตœ๋‹จ๊ฑฐ๋ฆฌ๋ฅผ ๊ตฌํ•  ์ˆ˜ ์žˆ๋‹ค. cf. ๋‹ค์ต์ŠคํŠธ๋ผ : ํ•œ ์‹œ์ž‘์ ์—์„œ ๋‹ค๋ฅธ ์ •์ ๊นŒ์ง€์˜ ์ตœ๋‹จ ๊ฑฐ๋ฆฌ ๋‹จ, ํ”Œ๋กœ์ด๋“œ ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ์Œ์ˆ˜ ๊ฐ€์ค‘์น˜๊ฐ€ ์—†๋Š” ๋ฌด์กฐ๊ฑด ์–‘์ˆ˜์˜ ๊ทธ๋ž˜ํ”„์—์„œ ๋™์ž‘ a ๐Ÿ‘‰ b๋กœ ์ด๋™ํ•  ๋•Œ, ๊ฒฝ์œ ์ ์€ c ํ”Œ๋กœ์ด๋“œ ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ๋‘ ์ •์  ์‚ฌ์ด์˜ ์–ด๋–ค ๊ฒฝ์œ ์ ์ด ์กด์žฌํ•œ๋‹ค๋ฉด ๊ฒฝ์œ ์ ์„ ๊ฑฐ์ณ๊ฐ€๋Š” ๊ฒƒ์„ ํ™•์ธํ•˜๋ฉด์„œ ๋” ์งง์€ ๊ฒƒ์„ ์„ ํƒ ๐ŸŸฉ ๊ตฌํ˜„ 1. ์œ„์˜ ๊ทธ๋ž˜ํ”„๋ฅผ ์šฐ์„  ๋ฐฐ์—ด๋กœ ๊ตฌํ˜„ํ•ด์•ผ ํ•œ๋‹ค. ์ดˆ๊ธฐ๊ฐ’์€ ์•„์ฃผ ํฐ ๊ฐ’์œผ๋กœ ์„ค์ •ํ•ด์•ผ ํ•œ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ž๊ธฐ ์ž์‹ ๊นŒ์ง€์˜ ๋น„์šฉ์€ 0์œผ๋กœ ์„ค์ •ํ•œ๋‹ค. 2. ์‹œ์ž‘์ ์„ i, ๋์ ์„ j, ๊ฒฝ์œ ์ ์„ k๋ผ ํ•  ๋•Œ, ๊ตฌํ•˜๋Š” ์‹์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. adj[i][j] = MIN(adj[i][j], adj[i][k] + adj[k][j]) ํ•ญ์ƒ ์ž‘์€ ๊ฐ’๋งŒ์„ ๊ฐ–๊ฒŒ ๋˜๋ฏ€๋กœ ์ง์ ‘์ ์œผ๋กœ ..
๐ŸŸฉ ํ•œ ๋…ธ๋“œ์—์„œ ๋‹ค๋ฅธ ๋…ธ๋“œ๊นŒ์ง€์˜ ์ตœ๋‹จ ๊ฑฐ๋ฆฌ๋ฅผ ๊ตฌํ•˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๊ฐ„์„ ์˜ ๊ฐ€์ค‘์น˜๊ฐ€ ์Œ์ˆ˜์ผ ๋•Œ๋„ ์ตœ๋‹จ ๊ฑฐ๋ฆฌ๋ฅผ ๊ตฌํ•  ์ˆ˜ ์žˆ๋‹ค. ๐ŸŒŸ ๋‹ค์ต์ŠคํŠธ๋ผ vs ๋ฒจ๋งŒ-ํฌ๋“œ 1๋ฒˆ ๋…ธ๋“œ์—์„œ 3๋ฒˆ ๋…ธ๋“œ๋กœ ๊ฐ€๋Š” ์ตœ๋‹จ ๊ฑฐ๋ฆฌ๋ฅผ ๊ตฌํ•œ๋‹ค๊ณ  ํ•  ๋•Œ, ๊ฒฝ๋กœ1. 1๋ฒˆ ๐Ÿ‘‰ 3๋ฒˆ (๋น„์šฉ : 10) ๐Ÿ‘‰ ๋‹ค์ต์ŠคํŠธ๋ผ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๊ฒฝ๋กœ2. 1๋ฒˆ ๐Ÿ‘‰ 2๋ฒˆ ๐Ÿ‘‰ 3๋ฒˆ (๋น„์šฉ : 5) ๐Ÿ‘‰ ๋ฒจ๋งŒ-ํฌ๋“œ ์•Œ๊ณ ๋ฆฌ์ฆ˜ โœ๏ธ ๋‹ค์ต์ŠคํŠธ๋ผ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋งค๋ฒˆ ๋ฐฉ๋ฌธํ•˜์ง€ ์•Š์€ ๋…ธ๋“œ ์ค‘์—์„œ ์ตœ๋‹จ ๊ฑฐ๋ฆฌ๊ฐ€ ๊ฐ€์žฅ ์งง์€ ๋…ธ๋“œ๋ฅผ ์„ ํƒํ•˜์—ฌ ํ•œ ๋‹จ๊ณ„์”ฉ ์ตœ๋‹จ ๊ฑฐ๋ฆฌ๋ฅผ ๊ตฌํ•ด๋‚˜๊ฐ„๋‹ค. ์Œ์ˆ˜ ๊ฐ„์„ ์ด ์—†๋‹ค๋ฉด ์ตœ์ ์˜ ํ•ด๋ฅผ ๊ตฌํ•  ์ˆ˜ ์žˆ๋‹ค. ์‹œ๊ฐ„ ๋ณต์žก๋„๊ฐ€ ๋น ๋ฅด๋‹ค (O ElogV) โœ๏ธ ๋ฒจ๋งŒ-ํฌ๋“œ ์•Œ๊ณ ๋ฆฌ์ฆ˜ (์ •์ -1)๋ฒˆ์˜ ๋งค ๋‹จ๊ณ„๋งˆ๋‹ค ๋ชจ๋“  ๊ฐ„์„ ์„ ์ „๋ถ€ ํ™•์ธํ•˜๋ฉด์„œ ๋ชจ๋“  ๋…ธ๋“œ๊ฐ„์˜ ์ตœ๋‹จ ๊ฑฐ๋ฆฌ๋ฅผ ๊ตฌํ•ด๋‚˜๊ฐ„๋‹ค. cf. ๋‹ค์ต์ŠคํŠธ๋ผ์™€์˜ ์ฐจ..
๐ŸŸฉ์Œ์˜ ๊ฐ€์ค‘์น˜(์Œ์˜ ๊ฐ„์„ , ์Œ์˜ ๊ฐ’)๊ฐ€ ์—†๋Š” ๊ทธ๋ž˜ํ”„์˜ ํ•œ ๋…ธ๋“œ์—์„œ ๊ฐ ๋ชจ๋“  ๋…ธ๋“œ๊นŒ์ง€์˜ ์ตœ๋‹จ ๊ฑฐ๋ฆฌ๋ฅผ ๊ตฌํ•˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋‘ ๊ผญ์ง“์  ๊ฐ„์˜ ๊ฐ€์žฅ ์งง์€ ๊ฒฝ๋กœ๋ฅผ ์ฐพ๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด์ง€๋งŒ ํ•œ ๊ผญ์ง“์ ์„ "์†Œ์Šค" ๊ผญ์ง“์ ์œผ๋กœ ๊ณ ์ •ํ•˜๊ณ , ๊ทธ๋ž˜ํ”„์˜ ๋‹ค๋ฅธ ๋ชจ๋“  ๊ผญ์ง“์ ๊นŒ์ง€์˜ ์ตœ๋‹จ๊ฒฝ๋กœ๋ฅผ ์ฐพ๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์œผ๋กœ ์ตœ๋‹จ ๊ฒฝ๋กœ ํŠธ๋ฆฌ๋ฅผ ๋งŒ๋“œ๋Š” ๊ฒƒ์œผ๋กœ๋„ ์‚ฌ์šฉ ๐ŸŸฉ ๊ทธ๋ฆฌ๋””์ด์ž ๋™์ ๊ณ„ํš๋ฒ• ๊ทธ๋ฆฌ๋”” : ๋ฐฉ๋ฌธํ•˜์ง€ ์•Š์€ ๋…ธ๋“œ ์ค‘์—์„œ ๊ฐ€์žฅ ๋น„์šฉ์ด ์ ์€ ๋…ธ๋“œ๋ฅผ ์„ ํƒ ๋‹ค์ด๋‚˜๋ฏน ํ”„๋กœ๊ทธ๋ž˜๋ฐ : ํ•ด๋‹น ๋…ธ๋“œ๋กœ๋ถ€ํ„ฐ ๊ฐˆ ์ˆ˜ ์žˆ๋Š” ๋…ธ๋“œ๋“ค์˜ ๋น„์šฉ์„ ๊ฐฑ์‹  ๐Ÿ‘‰ ๊ฐ€๋Šฅํ•œ ์ ์€ ๋น„์šฉ์œผ๋กœ ๊ฐ€์žฅ ๋น ๋ฅด๊ฒŒ ํ•ด๋‹ต์„ ๋„๋‹ฌํ•˜๋Š” ๊ฒฝ๋กœ๋ฅผ ์ฐพ์•„๋‚ด๋Š” ๋Œ€๋ถ€๋ถ„์˜ ๋ฌธ์ œ์— ์‘์šฉ๋œ๋‹ค. ๐ŸŸฉ ์˜ˆ์ œ A๋…ธ๋“œ์—์„œ ์ถœ๋ฐœํ•˜์—ฌ F๋…ธ๋“œ๋กœ ๊ฐ€๋Š” ์ตœ๋‹จ๊ฒฝ๋กœ๋ฅผ ๊ตฌํ•˜๋Š” ๋ฌธ์ œ S = ๋ฐฉ๋ฌธํ•œ ๋…ธ๋“œ๋“ค์˜ ์ง‘ํ•ฉ d[N] = A -> N๊นŒ์ง€ ๊ณ„์‚ฐ๋œ ์ตœ๋‹จ ๊ฑฐ..
๐ŸŸฉ ์‹œ์ž‘ ์ •์ ์—์„œ ์ •์ ์„ ์ถ”๊ฐ€ํ•ด๊ฐ€๋ฉฐ ๋‹จ๊ณ„์ ์œผ๋กœ ํŠธ๋ฆฌ๋ฅผ ํ™•์žฅํ•˜๋Š” ๊ธฐ๋ฒ• ์ฆ‰, ํƒ์ƒ‰ ์ •์ ์— ๋Œ€ํ•ด ์—ฐ๊ฒฐ๋œ ์ธ์ ‘ ์ •์ ๋“ค ์ค‘ ๋น„์šฉ์ด ๊ฐ€์žฅ ์ ์€ ๊ฐ„์„ ์œผ๋กœ ์—ฐ๊ฒฐ๋œ ์ •์ ์„ ์„ ํƒ ๐ŸŸฉ ๋™์ž‘ 1. ์‹œ์ž‘ ๋‹จ๊ณ„๋Š” ์‹œ์ž‘ ๋…ธ๋“œ๋งŒ์ด ์ตœ์†Œ ์‹ ์žฅ ํŠธ๋ฆฌ ์ง‘ํ•ฉ์— ์†ํ•œ๋‹ค. 2. ํŠธ๋ฆฌ ์ง‘ํ•ฉ์— ์†ํ•œ ์ •์ ๋“ค๊ณผ ์ธ์ ‘ํ•œ ์ •์ ๋“ค ์ค‘ ๊ฐ€์žฅ ๋‚ฎ์€ ๊ฐ€์ค‘์น˜์˜ ๊ฐ„์„ ๊ณผ ์—ฐ๊ฒฐ๋œ ์ •์ ์— ๋Œ€ํ•ด ๊ฐ„์„ ๊ณผ ์ •์ ์„ ์ตœ์†Œ ์‹ ์žฅ ํŠธ๋ฆฌ ์ง‘ํ•ฉ์— ๋„ฃ๋Š”๋‹ค (์‚ฌ์ดํด์„ ๋ง‰๊ธฐ ์œ„ํ•ด ์—ฐ๊ฒฐ๋œ ์ •์ ์ด ์ด๋ฏธ ํŠธ๋ฆฌ์— ์†ํ•œ๋‹ค๋ฉด ๊ทธ ๋‹ค์Œ ์ˆœ์„œ๋ฅผ ๋„ฃ๋Š”๋‹ค) 3. 2๋ฒˆ ๊ณผ์ •์„ MST ์ง‘ํ•ฉ์˜ ์›์†Œ ๊ฐœ์ˆ˜๊ฐ€ ๊ทธ๋ž˜ํ”„์˜ ์ •์ ์˜ ๊ฐœ์ˆ˜๊ฐ€ ๋  ๋•Œ๊นŒ์ง€ ๋ฐ˜๋ณตํ•œ๋‹ค. ์‹œ์ž‘ ์ •์  A A์™€ ์ธ์ ‘ํ•œ ๋…ธ๋“œ B, C ์ค‘ C๊ฐ€ ๊ฐ€์žฅ ๊ฐ€์ค‘์น˜๊ฐ€ ๋‚ฎ์€ ๊ฐ„์„ ์œผ๋กœ ์—ฐ๊ฒฐ๋˜์–ด ์žˆ์œผ๋‹ˆ, C๋ฅผ ์ง‘ํ•ฉ์— ๋„ฃ๊ณ  ๋น„์šฉ์— AC ๊ฐ€์ค‘์น˜๋ฅผ ๋”ํ•œ๋‹ค. AC์™€ ์ธ์ ‘ํ•œ ๋…ธ๋“œ๋“ค..
๐ŸŸฉ ์ตœ์†Œ ์‹ ์žฅ ํŠธ๋ฆฌ ์‹ ์žฅ ํŠธ๋ฆฌ ์ค‘ ์ตœ์†Œ ๋น„์šฉ์œผ๋กœ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š” ์‹ ์žฅ ํŠธ๋ฆฌ๋ฅผ ์ฐพ๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๐Ÿ‘‰ ํฌ๋ฃจ์Šค์นผ ์•Œ๊ณ ๋ฆฌ์ฆ˜ : ๊ฐ€์žฅ ์ ์€ ๋น„์šฉ์œผ๋กœ ๋ชจ๋“  ๋…ธ๋“œ ์—ฐ๊ฒฐ ๊ฐ€๋Šฅ ๐ŸŒŸ ์‹ ์žฅ ํŠธ๋ฆฌ ํ•˜๋‚˜์˜ ๊ทธ๋ž˜ํ”„๊ฐ€ ์žˆ์„ ๋•Œ ๋ชจ๋“  ๋…ธ๋“œ๋ฅผ ํฌํ•จํ•˜๋ฉด์„œ ์‚ฌ์ดํด์ด ์กด์žฌํ•˜์ง€ ์•Š๋Š” ๋ถ€๋ถ„ ๊ทธ๋ž˜ํ”„ ๐ŸŒŸ ์ตœ์†Œ ์‹ ์žฅ ํŠธ๋ฆฌ ์‹ ์žฅ ํŠธ๋ฆฌ ์ค‘์—์„œ๋„ ์ตœ์†Œํ•œ์˜ ๋น„์šฉ์œผ๋กœ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š” ์‹ ์žฅ ํŠธ๋ฆฌ ์™ผ์ชฝ ๊ทธ๋ž˜ํ”„์—์„œ ์ตœ์†Œ ์‹ ์žฅ ํŠธ๋ฆฌ๋ฅผ ์ฐพ์œผ๋ฉด 25๋ฅผ ์ œ์™ธํ•œ 2๊ฐœ์˜ ๊ฐ„์„  (23+13)์œผ๋กœ ์ด๋ฃจ์–ด์ง„ ์‹ ์žฅํŠธ๋ฆฌ ์ฆ‰, ์‹ ์žฅ ํŠธ๋ฆฌ์˜ ์กฐ๊ฑด์„ ๋งŒ์กฑํ•˜๋ฉด์„œ ์ตœ์†Œ ๋น„์šฉ์œผ๋กœ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š” ์‹ ์žฅ ํŠธ๋ฆฌ ๐ŸŸฉ ํฌ๋ฃจ์Šค์นผ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋™์ž‘๊ณผ์ • 1. ๊ฐ„์„  ๋ฐ์ดํ„ฐ๋ฅผ ๋น„์šฉ์— ๋”ฐ๋ผ ์˜ค๋ฆ„์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌํ•œ๋‹ค. 2. ๊ฐ„์„ ์„ ํ•˜๋‚˜์”ฉ ํ™•์ธํ•˜๋ฉด์„œ ํ˜„์žฌ์˜ ๊ฐ„์„ ์ด ์‚ฌ์ดํด์„ ๋ฐœ์ƒ์‹œํ‚ค๋Š”์ง€ ํ™•์ธ ๐Ÿ‘‰ ์‚ฌ์ดํด ๋ฐœ์ƒ ์—ฌ๋ถ€์— ๋”ฐ๋ผ, ์ตœ์†Œ ์‹ ์žฅ..
๐ŸŸฉ ๊ท ํ˜• ํƒ์ƒ‰ ํŠธ๋ฆฌ ์ด์ง„ ํŠธ๋ฆฌ๋ฅผ ํ™•์žฅํ•ด ํ•˜๋‚˜์˜ ๋…ธ๋“œ๊ฐ€ ๊ฐ€์งˆ ์ˆ˜ ์žˆ๋Š” ์ž์‹ ๋…ธ๋“œ์˜ ์ตœ๋Œ€ ์ˆซ์ž๊ฐ€ 2๋ณด๋‹ค ํฐ ํŠธ๋ฆฌ ๊ตฌ์กฐ ํ‚ค์˜ ๊ฐœ์ˆ˜ (t-1)~(2t-1) ๊ฐœ ์ž์‹ ๋…ธ๋“œ์˜ ๊ฐœ์ˆ˜ t~2t ๊ฐœ ๐ŸŸฉ ์„ฑ์งˆ 1. ๋…ธ๋“œ์—๋Š” 2๊ฐœ ์ด์ƒ์˜ ๋ฐ์ดํ„ฐ๊ฐ€ ๋“ค์–ด๊ฐˆ ์ˆ˜ ์žˆ์œผ๋ฉฐ, ํ•ญ์ƒ ์ •๋ ฌ๋œ ์ƒํƒœ๋กœ ์ €์žฅ๋œ๋‹ค. 2. ๋‚ด๋ถ€ ๋…ธ๋“œ๋Š” ceil(m/2) ~ m ๊ฐœ์˜ ์ž์‹์„ ๊ฐ€์งˆ ์ˆ˜ ์žˆ๋‹ค. ์ตœ๋Œ€ m๊ฐœ์˜ ์ž์‹์„ ๊ฐ€์งˆ ์ˆ˜ ์žˆ๋Š” BํŠธ๋ฆฌ๋ฅผ m์ฐจ BํŠธ๋ฆฌ๋ผ ํ•œ๋‹ค. ceil() ํ•จ์ˆ˜๋Š” ์˜ฌ๋ฆผ ํ•จ์ˆ˜์ด๋‹ค. ์ฆ‰, ceil(3/2) = 2์ด๋‹ค. ์ฆ‰, 3์ฐจ BํŠธ๋ฆฌ์˜ ๋ฆฌํ”„ ๋…ธ๋“œ์™€ ๋ฃจํŠธ๋…ธ๋“œ๋ฅผ ์ œ์™ธํ•œ ๋‚ด๋ถ€ ๋…ธ๋“œ๋Š” 2-3๊ฐœ์˜ ์ž์‹์„ ๊ฐ€์งˆ ์ˆ˜ ์žˆ๋‹ค. 3. ํŠน์ • ๋…ธ๋“œ์˜ ๋ฐ์ดํ„ฐ(key)๊ฐ€ K๊ฐœ๋ผ๋ฉด, ์ž์‹ ๋…ธ๋“œ์˜ ๊ฐœ์ˆ˜๋Š” K+1๊ฐœ์—ฌ์•ผ ํ•œ๋‹ค. ํŠน์ • ๋…ธ๋“œ์˜ ๋ฐ์ดํ„ฐ๊ฐ€ 2๊ฐœ๋ผ๋ฉด, ์ž์‹ ๋…ธ๋“œ๋Š” ..
peewoong
'๐Ÿ‘ฉ‍๐Ÿ’ป ํ”„๋กœ๊ทธ๋ž˜๋ฐ/๐ŸŽ ์•Œ๊ณ ๋ฆฌ์ฆ˜' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๊ธ€ ๋ชฉ๋ก