๐Ÿ“‚ ์•Œ๊ณ ๋ฆฌ์ฆ˜/๋ฌธ์ž์—ด

    ๋ณด์ด์–ด-๋ฌด์–ด(Boyer-Moore) ์•Œ๊ณ ๋ฆฌ์ฆ˜

    1. ๊ฐœ๋… ๐Ÿ“ธ ๋ณด์ด์–ด-๋ฌด์–ด(Boyer-Moore) ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ skip์ด๋ผ๋Š” ๊ฒƒ์„ ํ™œ์šฉํ•œ ๋ฌธ์ž์—ด ๋งค์นญ ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด๋‹ค. ์—ฌ๊ธฐ์„œ skip์ด๋ž€ ๋ฌธ์ž์—ด์„ ๋น„๊ตํ•  ๋•Œ ๋ถˆํ•„์š”ํ•œ ๋น„๊ต๊ฐ€ ์žˆ๋‹ค๋ฉด ๊ฑด๋„ˆ๋›ธ ์ˆ˜ ์žˆ๋„๋ก ๋„์™€์ฃผ๋Š” ๊ฒƒ์ด๋‹ค. (์ •ํ™•ํ•œ ๋ช…์นญ์€ ์•„๋‹ˆ์ง€๋งŒ ์•„๋ž˜์˜ ๋™์ž‘๋ฐฉ์‹์„ ๋ณธ๋‹ค๋ฉด ์™œ skip์ด๋ผ๊ณ  ๋ถˆ๋ฆฌ๋Š”์ง€ ์•Œ ์ˆ˜ ์žˆ์„ ๊ฒƒ์ด๋‹ค.) ๋ณด์ด์–ด-๋ฌด์–ด ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ๋ฌธ์ž์—ด์„ ๋น„๊ตํ•  ๋•Œ ์ผ๋ฐ˜์ ์œผ๋กœ ์•ž๋ถ€๋ถ„๋ณด๋‹ค๋Š” ๋’ท๋ถ€๋ถ„์—์„œ ๋ถˆ์ผ์น˜๊ฐ€ ์ผ์–ด๋‚  ํ™•๋ฅ ์ด ๋†’๋‹ค๋Š” ์„ฑ์งˆ์„ ํ™œ์šฉํ•œ๋‹ค. ๊ทธ๋ž˜์„œ ๋น„๊ตํ•  ๋ฌธ์ž์—ด๊ณผ ํŒจํ„ด์„ ์•ž๋ถ€๋ถ„๋ถ€ํ„ฐ ํ™•์ธํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹Œ ๋’ท๋ถ€๋ถ„๋ถ€ํ„ฐ ํ™•์ธํ•˜๊ฒŒ ๋œ๋‹ค. 2. ๋™์ž‘๋ฐฉ์‹ ๐ŸŽฌ ๊ธฐ๋ณธ์ ์ธ ๋™์ž‘๋ฐฉ์‹์€ ์ผ์น˜ํ•˜์ง€ ์•Š์€ ๋ฌธ์ž๋ฅผ ๋งŒ๋‚œ ๊ฒฝ์šฐ ํŒจํ„ด์—์„œ ์ผ์น˜ํ•˜๋Š” ๋ฌธ์ž๋ฅผ ์ฐพ์•„์„œ ์ด๋™ํ•œ ํ›„ ๋น„๊ต๋ฅผ ๋‹ค์‹œ ์‹œ์ž‘ํ•œ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค. ๋ณธ๋ฌธ์€ 'abphone' ํŒจํ„ด์€ 'phon..

    ๋ผ๋นˆ-์นดํ”„(Rabin-Karp) ์•Œ๊ณ ๋ฆฌ์ฆ˜

    1. ๊ฐœ๋… โšฝ ๋ผ๋นˆ-์นดํ”„(Rabin-Karp) ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด๋ž€ ํ•ด์‹ฑ(Hashing)์„ ์ด์šฉํ•œ ๋ฌธ์ž์—ด ๋งค์นญ ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด๋‹ค. ๋น„๊ตํ•˜๊ณ ์ž ํ•˜๋Š” ๋ฌธ์ž๋“ค๊ณผ ํŒจํ„ด์˜ ๋ฌธ์ž๋“ค์„ ์ผ์ผ์ด ๋น„๊ตํ•˜๋Š” ๋Œ€์‹ ์— ๋ฌธ์ž์—ด์˜ ํ•ด์‹œ๊ฐ’์„ ๋น„๊ตํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ์ง„ํ–‰๋œ๋‹ค. 2. ๋™์ž‘๋ฐฉ์‹(์—ฐ์Šต์šฉ) ๐Ÿ€ ๋™์ž‘ ๋ฐฉ์‹์€ ์•„๋ž˜์™€ ๊ฐ™๋‹ค. ํ•ด์‹œ ํ•จ์ˆ˜๋ฅผ ์„ค์ •ํ•œ๋‹ค. ํ•ด์‹œ ํ•จ์ˆ˜๋ฅผ ์ด์šฉํ•˜์—ฌ ํŒจํ„ด์˜ ํ•ด์‹œ๊ฐ’์„ ๊ตฌํ•œ๋‹ค. ๋น„๊ตํ•˜๊ณ ์ž ํ•˜๋Š” ๋ฌธ์ž์—ด์˜ ํ•ด์‹œ๊ฐ’์„ ๊ตฌํ•œ๋‹ค. ์ผ์น˜ํ•˜๋ฉด ํŒจํ„ด๊ณผ ์ฐพ์€ ๋ฌธ์ž์—ด์„ 1:1 ๋น„๊ตํ•œ๋‹ค. ์ผ์น˜ํ•˜์ง€ ์•Š์œผ๋ฉด ๋น„๊ตํ•˜๊ณ ์ž ํ•˜๋Š” ๋ฌธ์ž์—ด์„ ํ•œ ์นธ ๋’ค๋กœ ์˜ฎ๊ฒจ์„œ 3๋ฒˆ๋ถ€ํ„ฐ ๋‹ค์‹œ ์‹œ์ž‘ํ•œ๋‹ค. ํ•ด์‹œ๊ฐ’์ด ๊ฐ™๋”๋ผ๋„ 1:1 ๋งค์นญ์„ ํ†ตํ•ด์„œ ์ตœ์ข…์ ์œผ๋กœ ํŒจํ„ด๊ณผ ๋น„๊ตํ•˜๊ณ ์ž ํ•˜๋Š” ๋ฌธ์ž์—ด์ด ์ผ์น˜ํ•˜๋Š”์ง€ ํ™•์ธํ•˜๋Š” ์ ˆ์ฐจ๊ฐ€ ํ•„์š”ํ•˜๋‹ค. ๊ทธ ์ด์œ ๋Š” ํ•ด์‹œ๊ฐ’์ด ๊ฐ™๋‹ค๊ณ  ํ•ด์„œ ๋ฌด์กฐ๊ฑด ๊ฐ™์€ ๋ฌธ์ž์—ด์ด๋ผ๊ณ  ๋ณด์žฅํ•  ..