1. ๊ตฌ๊ฐํฉ ๊ธฐ์ ์ด๋?
1์ฐจ์ ๋ฐฐ์ด์์ ํน์ ๊ตฌ๊ฐ ๋ด์ ์์๋ค์ ํฉ์ ๊ตฌํ๋ ์๊ณ ๋ฆฌ์ฆ์ด๋ค.
2. ์ ์จ์ผ ํ๋๊ฐ?
์์ ์์์์ A์์ B๊น์ง์ ๊ตฌ๊ฐ ํฉ์ ๊ตฌํ๋ค๋ฉด, ์ด๋ป๊ฒ ๊ตฌํ ๊ฒ์ธ๊ฐ? ํน์๋ 2๋ฒ index๋ถํฐ 7๋ฒ index๊น์ง for ๋ฐ๋ณต๋ฌธ์ ํ์ฉํด ์ฐจ๋ก๋๋ก ๋ํ ๊ฒ์ด๋ค. ํน์๋ 0์์ A๋ฒ๊น์ง์ ๋์ ํฉ์ ๊ตฌํ๊ณ , 0~B๋ฒ๊น์ง์ ๋์ ํฉ์ ๊ตฌํด, ๋์ ๋นผ์ ๊ตฌํ ๊ฒ์ด๋ค. ๋ง์ฝ ๋จ์ผ ๊ณ์ฐ์ด๋ผ๋ฉด, ์ด๋ฐ ์์ ํ์ด๋ n๋ฒ์ ๋ฐ๋ณต์ผ ๋ฟ์ด๋ ๊ด์ฐฎ์ ์ ์๋ค. ํ์ง๋ง, ๋ฌธ์ ์์ ์ฌ๋ฌ ๊ฐ์ ๊ตฌ๊ฐํฉ์ ๋ฐํํ๊ธธ ๋ฐ๋๋ค๋ฉด? ๋งค๋ฒ ์ด๋ฌํ ๋ฐ๋ณต๋ฌธ์ ๋ฐ๋ณตํ๋ ๊ฒ์ ๋นํจ์จ์ ์ด๋ค. ์ด๋ ์๊ฐ ์ด๊ณผ๋ก ์ด์ด์ง ์ ์๋ค.
์๊ฐ ๋ณต์ก๋๋ก ๊ณ์ฐํด ๋ณด๊ฒ ๋ค. ์ต์
์ ์์ ํด์ผํ๋, N๊ฐ์ ์์๋ฅผ ๊ฐ์ง ๋ฐฐ์ด์์ 0~ N~1๊น์ง์ ๊ณ์ฐ์ K๋ฒ ๋ฐ๋ณตํ๋ค๊ณ ํ์. ์ด๋์ ์๊ฐ ๋ณต์ก๋๋ O(N*K)
์ด๋ค.
3. ์ด๋ป๊ฒ ๊ตฌํ ํ๋๊ฐ?
๊ตฌ๊ฐํฉ ์๊ณ ๋ฆฌ์ฆ
์ ์ด๋ฌํ ์๊ฐ ๋ณต์ก๋๋ฅผ ํ๊ธฐ์ ์ผ๋ก ์ค์ธ๋ค. ๋จผ์ ๊ตฌ๊ฐํฉ ์๊ณ ๋ฆฌ์ฆ์ ์ดํดํ๊ธฐ ์ํด์๋ ๋์ ํฉ ๋ฐฐ์ด
์ ๋ํ ์ดํด๋ฅผ ํด์ผํ๋ค. ๋์ ํฉ ๋ฐฐ์ด์ ๋ง๊ทธ๋๋ก, ๋ฌธ์ ์์ ์ฃผ์ด์ง ๋ฐฐ์ด์ ์์๊ฐ์ index๋ฅผ ๊ฑฐ๋ญํ ์๋ก ๋์ ํ์ฌ ์ ์ฅํ๋ ๋ฐฐ์ด์ด๋ค. ์์ ์์๋ก ๋ค์๋ ๋ฐฐ์ด์ ๋์ ํฉ ๋ฐฐ์ด๋ก ๋ค์ ๋ํ๋ด๋ฉด ๋ค์๊ณผ ๊ฐ๋ค.
์ด์ ๋ญํ๋ฉด ๋๋๊ฐ? ๊ทธ๋ ๋ค! ๊ทธ๋ฅ ํ์ํ ์์น์ ๋์ ํฉ๋ผ๋ฆฌ ๋นผ๋ฉด๋๋ค.
์ฌ๊ธฐ์๋ 18 - 2 = 16์ผ๋ก ๋์ฌ ์ ์๋ค. ๋์ ํฉ๋ผ๋ฆฌ์ ์ฐจ๋ ๋ฌด์์ ์๋ฏธํ๋๊ฐ?
sum[7] = 1์์7๋ฒ index์ ๊ฐ๋ค์ ํฉ์ด๊ณ , sum[1] = 1 index์ ํฉ์ด๋ค. ์ด ๋์ ์ฐจ๋ 2์์ 7๋ฒ index์ ํฉ์ด๋ค.
๋ ์๊ฐ์ ์ฐจ๋ฅผ ๊ตฌํ๋ ์๊ฐ๋ณต์ก๋๋ O(1)
์ด๋ค. ๋ฐ๋ผ์ ๊ตฌ๊ฐํฉ์ ์ฐ์ง ์์ ๋ฐฉ์์ด ๋งค๋ฒ ๊ตฌ๊ฐํฉ์ ๊ตฌํ๋ ๊ฒ๊ณผ ๋ค๋ฅด๊ฒ, ํด๋น ์๊ณ ๋ฆฌ์ฆ์ ํ์ฉํ๋ฉด ๋์ ํฉ์ ๊ตฌํ๋ N๋ฒ์ ๋ฐ๋ณต์ ์ ์ธํ๋ฉด ์ฌ์ค์ ์๊ฐ ๋ณต์ก๋๋ฅผ ๋๋ฆฌ๋ ํ๋์ด ์๋ค. ๊ตฌํด์ผํ๋ ๊ตฌ๊ฐํฉ์ ๊ฐ์๋ฅผ K๋ผ๊ณ ํ๋ฉด ์๊ฐ๋ณต์ก๋๋ O(N+K)
๊ฐ ๋ ๊ฒ์ด๋ค.