์•Œ๊ณ ๋ฆฌ์ฆ˜/๊ฐœ๋…

์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œ๋ฅผ ํ’€๋‹ค๊ฐ€ ํฐ ์ˆ˜๋ฅผ ๊ฑฐ๋“ญ์ œ๊ณฑํ•˜๊ฒŒ๋˜๋ฉด ์‹œ๊ฐ„์ดˆ๊ณผ ๋ฌธ์ œ์— ๋ด‰์ฐฉํ•˜๊ฒŒ ๋˜๋Š” ๋ฐ ์ด๋•Œ ๋ชจ๋“ˆ๋Ÿฌ ์—ฐ์‚ฐ์„ ์‚ฌ์šฉํ•˜๋ฉด ์˜ค๋ฒ„ํ”Œ๋กœ์šฐ์—†์ด ๋น ๋ฅด๊ฒŒ ๊ฐ’์„ ๊ตฌํ•  ์ˆ˜ ์žˆ๋‹ค. ๋ชจ๋“ˆ๋Ÿฌ ์—ฐ์‚ฐ์ด๋ž€ ๋‚˜๋ˆ—์…ˆ์„ ํ‘œํ˜„ํ•˜๋Š” ์‹์œผ๋กœ A/B๋ฅผ ๊ณ„์‚ฐํ–ˆ์„ ๋•Œ ๋ชซ์„ Q, ๋‚˜๋จธ์ง€๋ฅผ R์ด๋ผ ํ•œ๋‹ค๋ฉด A mod B = R๋กœ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค. (=A ๋ชจ๋“ˆ๋กœ B๋Š” R๊ณผ ๊ฐ™๋‹ค) ๋ชจ๋“ˆ๋Ÿฌ ๊ฑฐ๋“ญ์ œ๊ณฑ A^B mod C = ( (A mod C)^B ) mod C B์˜ ๊ฐ’์ด ์กฐ๊ธˆ๋งŒ ์ปค์ ธ๋„ A^B์˜ ๊ฐ’์ด ๊ฒ๋‚˜๊ฒŒ ์ปค์ ธ์„œ, A^B mod C๋ฅผ ์‹œ๋„ํ•˜๋ฉด ์‹œ๊ฐ„์ดˆ๊ณผ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค. ex) 2^90 = 1,237,940,039,290,000,000,000,000,000 ์™œ ๋น ๋ฅธ๊ฐ€? ๋ถ„ํ•  ์ •๋ณต ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ฑฐ๋“ญ์ œ๊ณฑ์„ ๊ณ„์‚ฐํ•ด์„œ์ด๋‹ค. p^n์„ ๊ณ„์‚ฐํ•˜๋Š” ๋Œ€์‹  (p^n/2)*(p^n/2)..
์š”์†Œ๋“ค์˜ ๋ˆ„์ ๋œ ํ•ฉ. ์–ด๋– ํ•œ ๋ฐฐ์—ด์„ ๊ธฐ๋ฐ˜์œผ๋กœ ์•ž์—์„œ๋ถ€ํ„ฐ ์š”์†Œ๋“ค์˜ ๋ˆ„์ ๋œ ํ•ฉ์„ ์ €์žฅํ•ด ์ƒˆ๋กœ์ด ๋ฐฐ์—ด์„ ๋งŒ๋“ค์–ด์„œ(PSum) ์ด๋ฅผ ํ™œ์šฉํ•˜๋Š” ๊ฒƒ์„ ์˜๋ฏธ (↔ Suffix Sum ๋’ค์—์„œ๋ถ€ํ„ฐ ๋”ํ•จ) - PSum[n] ์—๋Š” ๋ฐฐ์—ด์˜ n๋ฒˆ์งธ ์ธ๋ฑ์Šค์˜ ๊ฐ’๊นŒ์ง€ ํ•ฉํ•œ ๊ฐ’์ด ๋“ค์–ด๊ฐ - ๋ˆ„์ ํ•ฉ ๋ฐฐ์—ด์„ ๋งŒ๋“ค ๋•Œ๋Š” 0๋ฒˆ index๋ฅผ ๋น„์šฐ๊ณ  1๋ฒˆ๋ถ€ํ„ฐ ๊ฐ’์„ ๋ฐ›๋Š” ๊ฒŒ ํŽธํ•˜๋‹ค. ํ™œ์šฉ ๋ฐฉ๋ฒ• ๊ตฌ๊ฐ„์ฟผ๋ฆฌ ์ค‘ ๋ฐฐ์—ด์˜ ์š”์†Œ๊ฐ€ ๋ณ€ํ•˜์ง€ ์•Š๋Š” ์ •์ ๋ฐฐ์—ด์—์„œ ๊ตฌ๊ฐ„์˜ ํ•ฉ์„ ๊ตฌํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•จ n๊ฐœ์˜ ์ˆซ์ž๊ฐ€ ์žˆ๊ณ  ํ•ฉ์„ ๊ตฌํ•ด์•ผํ•  ๊ตฌ๊ฐ„์ด m๊ฐœ ์ฃผ์–ด์งˆ ๋•Œ, ๋งค๋ฒˆ ๋”ํ•˜๋Š” ๊ฒŒ ์•„๋‹ˆ๋ผ ๋ˆ„์ ํ•ฉ ๋ฐฐ์—ด์„ ๊ตฌํ•ด๋†“๊ณ  ๋งˆ์ด๋„ˆ์Šค ์—ฐ์‚ฐ์œผ๋กœ ๊ฐ’์„ ๊ตฌํ•จ ex: [3,5] ๊ตฌ๊ฐ„์˜ ํ•ฉ → PSum[5] - PSum[2] - ์‹œ๊ฐ„๋ณต์žก๋„: O(n*n) → O(n) *๋ฐ˜๋ณต๋ฌธ์œผ๋กœ ๋งค๋ฒˆ ๊ตฌํ•˜๋ฉด O(n*n)..
์–‘๋‚˜๋‹ˆ
'์•Œ๊ณ ๋ฆฌ์ฆ˜/๊ฐœ๋…' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๊ธ€ ๋ชฉ๋ก