๐[Data Structure] ๊ตฌ๊ฐ ํฉ
๊ตฌ๊ฐ ํฉ?
๊ตฌ๊ฐ ํฉ
์ ํฉ ๋ฐฐ์ด์ ์ด์ฉํด ์๊ฐ ๋ณต์ก๋๋ฅผ ์ค์ด๊ธฐ ์ํด ์ฌ์ฉํ๋ ํน์ํ ๋ชฉ์ ์ ์๊ณ ๋ฆฌ์ฆ์!
ํฉ ๋ฐฐ์ด์ ๋จผ์ ๊ตฌํด์ผํ๋ ๊ฒ์ด ์ค์ํ๋ค.
๋ฆฌ์คํธ A๊ฐ ์์ ๋, ํฉ ๋ฐฐ์ด S๋ ์๋์ ๊ฐ์ด ์ ์ํ ์ ์๋ค.
# A[0] ~ A[i] ๊น์ง์ ํฉ
S[i] = A[0] + A[1] + A[2] + ... + A[i-1] + A[i]
์ด์ฒ๋ผ ํฉ ๋ฐฐ์ด์ ๊ธฐ์กด์ ๋ฆฌ์คํธ ๋ฐ์ดํฐ๋ฅผ ์ ์ฒ๋ฆฌํ ๋ฐฐ์ด
์ด๋ผ๊ณ ์๊ฐํ๋ฉด ๋๋ค!
์ด๋ ๊ฒ ํฉ ๋ฐฐ์ด์ ๋จผ์ ๊ตฌํด ๋์ผ๋ฉด ๊ธฐ์กด ๋ฆฌ์คํธ์ ์ผ์ ๋ฒ์์ ํฉ์ ๊ตฌํ๋ ์๊ฐ ๋ณต์ก๋๊ฐ O(N)์์ O(1)๋ก ์ค์ด๋ ๋ค.
ํฉ ๋ฐฐ์ด๊ณผ ๊ตฌ๊ฐ ํฉ์ ๊ตฌํ๋ ๊ณต์์ด ์๋ค?
ํฉ ๋ฐฐ์ด์ ๊ตฌํ๋ ๊ณต์์ ๋ค์๊ณผ ๊ฐ๋ค!
S[i] = S[i-1] + A[i]
์ด๋ ๊ฒ ๊ตฌํํ๋ฉด ํฉ ๋ฐฐ์ด์ ์ด์ฉํด ๊ตฌ๊ฐ ํฉ ๋ํ ์ฝ๊ฒ ๊ตฌํ ์ ์๋ค.
i์์ j๊น์ง์ ๊ตฌ๊ฐ ํฉ์ ๊ตฌํ๋ ๊ณต์์ ๋ค์๊ณผ ๊ฐ๋ค!
S[j] - S[i-1]
๋๊ธ๋จ๊ธฐ๊ธฐ