์๊ณ ๋ฆฌ์ฆ ๋ฌธ์ ๋ฅผ ํ๋ค๊ฐ ํฐ ์๋ฅผ ๊ฑฐ๋ญ์ ๊ณฑํ๊ฒ๋๋ฉด ์๊ฐ์ด๊ณผ ๋ฌธ์ ์ ๋ด์ฐฉํ๊ฒ ๋๋ ๋ฐ ์ด๋ ๋ชจ๋๋ฌ ์ฐ์ฐ์ ์ฌ์ฉํ๋ฉด ์ค๋ฒํ๋ก์ฐ์์ด ๋น ๋ฅด๊ฒ ๊ฐ์ ๊ตฌํ ์ ์๋ค. ๋ชจ๋๋ฌ ์ฐ์ฐ์ด๋ ๋๋์
์ ํํํ๋ ์์ผ๋ก 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)..