๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

CS/์•Œ๊ณ ๋ฆฌ์ฆ˜

(2)
Boyer-Moore ๊ณผ๋ฐ˜์ˆ˜ ํˆฌํ‘œ ์•Œ๊ณ ๋ฆฌ์ฆ˜ Boyer-Moore ๊ณผ๋ฐ˜์ˆ˜ ํˆฌํ‘œ ์•Œ๊ณ ๋ฆฌ์ฆ˜ (Boyer-Moore majority vote algorithm)์ฃผ์–ด์ง„ ํ›„๋ณด์ž ๋ชฉ๋ก์—์„œ ๊ณผ๋ฐ˜์ˆ˜๋ฅผ ์ฐจ์ง€ํ•˜๋Š” ํ›„๋ณด๋ฅผ ์ฐพ๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด๋‹ค.๋ฐฐ์—ด ๋‚ด ๊ณผ๋ฐ˜์ˆ˜์— ํ•ด๋‹นํ•˜๋Š” ์›์†Œ๊ฐ€ ํ•ญ์ƒ ์กด์žฌํ•œ๋‹ค๊ณ  ๊ฐ€์ •ํ•˜๋ฉด, ๊ฒฐ๊ณผ๊ฐ’์€ ํ•ญ์ƒ ๊ณผ๋ฐ˜์ˆ˜ ์›์†Œ๊ฐ€ ๋œ๋‹ค.ํ•ต์‹ฌ ์•„์ด๋””์–ด๋Š” ์ฃผ์–ด์ง„ ํ›„๋ณด์ž ๋ชฉ๋ก์— ๋‘ ๊ฐ€์ง€์˜ ์„œ๋กœ ๋‹ค๋ฅธ ํ›„๋ณด๋ฅผ ์ง€์ •ํ•˜๊ณ , ์ด๋“ค์„ ์„œ๋กœ ์ƒ์‡„์‹œ์ผœ๊ฐ€๋ฉฐ ์ตœ์ข… ํ›„๋ณด๋ฅผ ๊ฒฐ์ •ํ•˜๋Š” ๊ฒƒ์ด๋‹ค.์‹œ๊ฐ„ ๋ณต์žก๋„๋Š” O(N), ๊ณต๊ฐ„ ๋ณต์žก๋„๋Š” O(1) ์ด๋‹ค. ๋™์ž‘ ๋ฐฉ์‹ ์ž…๋ ฅ ์‹œํ€€์Šค ์š”์†Œ m๊ณผ ์นด์šดํ„ฐ c๋ฅผ 0์œผ๋กœ ์ดˆ๊ธฐํ™”ํ•œ๋‹ค.์ž…๋ ฅ ์‹œํ€€์Šค์—์„œ ๊ฐ๊ฐ์˜ ์š”์†Œ x์— ๋Œ€ํ•ด์„œc == 0 ์ด๋ฉด m = x, c = 1 ๋Œ€์ž…ํ•œ๋‹ค.m == x ์ด๋ฉด c = c + 1 ๋Œ€์ž…ํ•œ๋‹ค.m != x ์ด๋ฉด c = c -1 ๋Œ€์ž…ํ•œ๋‹ค.m์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค...
์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ณต์žก๋„ ์‹œ๊ฐ„ ๋ณต์žก๋„ & ๊ณต๊ฐ„ ๋ณต์žก๋„ ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ๋ณต์žก๋„๋Š” ์‹œ๊ฐ„ ๋ณต์žก๋„์™€ ๊ณต๊ฐ„ ๋ณต์žก๋„๋กœ ๋‚˜๋‰œ๋‹ค. ์ตœ๊ทผ์—๋Š” ํ•˜๋“œ์›จ์–ด ๋ฉ”๋ชจ๋ฆฌ ์šฉ๋Ÿ‰์ด ์ปค์กŒ๊ธฐ ๋•Œ๋ฌธ์—, ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์„ฑ๋Šฅ ์ธก์ •์—์„œ๋Š” ์‹œ๊ฐ„ ๋ณต์žก๋„๊ฐ€ ์ข€ ๋” ์šฐ์„ ์‹œ๋œ๋‹ค. 1. ์‹œ๊ฐ„ ๋ณต์žก๋„์•Œ๊ณ ๋ฆฌ์ฆ˜์— ํ•„์š”ํ•œ ๋‹จ๊ณ„ ์ˆ˜๋งŒ ๊ณ ๋ คํ•œ๋‹ค.๋ฐ์ดํ„ฐ๊ฐ€ ์ฆ๊ฐ€ํ• ์ˆ˜๋ก ๋‹จ๊ณ„ ์ˆ˜๊ฐ€ ์–ด๋–ป๊ฒŒ ๋ณ€ํ•˜๋Š”์ง€๋ฅผ ๋งํ•ด์ค€๋‹ค.2. ๊ณต๊ฐ„๋ณต์žก๋„ํ”„๋กœ๊ทธ๋žจ์„ ์‹คํ–‰์‹œ์ผฐ์„ ๋•Œ ํ•„์š”๋กœ ํ•˜๋Š” ์ž์› ๊ณต๊ฐ„์˜ ์–‘์ด๋‹ค.์ •์ ์œผ๋กœ ์„ ์–ธ๋œ ๋ณ€์ˆ˜, ์žฌ๊ท€ํ•จ์ˆ˜์™€ ๊ฐ™์ด ๋™์ ์œผ๋กœ ๊ณต๊ฐ„์„ ๊ณ„์†ํ•ด์„œ ํ•„์š”๋กœ ํ•˜๋Š” ๊ฒฝ์šฐ๋„ ํฌํ•จํ•œ๋‹ค. ๋น… ์˜ค ํ‘œ๊ธฐ๋ฒ•์ž๋ฃŒ๊ตฌ์กฐ์™€ ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ํšจ์œจ์„ฑ์„ ๊ฐ„๊ฒฐํ•˜๊ณ  ์ผ๊ด€๋œ ์–ธ์–ด๋กœ ์„ค๋ช…ํ•˜๊ธฐ ์œ„ํ•ด ๋“ฑ์žฅํ–ˆ๋‹ค.์ ˆ๋Œ€์ ์ธ ์‹คํ–‰ ์‹œ๊ฐ„๊ณผ ํ•„์š”ํ•œ ์ž์› ๊ณต๊ฐ„์˜ ์–‘์„ ํŒŒ์•…ํ•˜๊ธฐ๋ž€ ์–ด๋ ค์šฐ๋ฏ€๋กœ, ๋น… ์˜ค ํ‘œ๊ธฐ๋ฒ•์œผ๋กœ ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ํšจ์œจ์„ฑ์„ ์ •๋Ÿ‰ํ™”ํ•  ์ˆ˜ ์žˆ๋‹ค.์ž…๋ ฅ ํฌ๊ธฐ N์— ๋”ฐ๋ผ ์—ฐ์‚ฐ์ด..