2024. 8. 12. 15:00ใ๐์๊ณ ๋ฆฌ์ฆ ํผ๋๋ฐฑ/์ฝํ ๊ด๋ จ ๊ฐ์ข
[๋ถ๋ถ ํฉ (Partial sum)]
: ๋ถ๋ถ ํฉ์ด๋ ๊ตฌ๊ฐ ํฉ๊ณผ ๋ฌ๋ฆฌ ์ฒ์๋ถํฐ ํน์ ์ธ๋ฑ์ค๊น์ง์ ํฉ์ ์๋ฏธํ๋ค (Array[i] ๋ถํฐ Array[j]๊น์ง์ ํฉ)
[๊ตฌ๊ฐ ํฉ(Prefix sum)]
-> ํฉ ๋ฐฐ์ด์ ์ด์ฉํ์ฌ ์๊ฐ๋ณต์ก๋๋ฅผ ๋ ์ค์ด๊ธฐ ์ํด ์ฌ์ฉํ๋ ํน์ํ ๋ชฉ์ ์ ์๊ณ ๋ฆฌ์ฆ
๋ณดํต 1์ฐจ์ ๋ฐฐ์ด์์ i~k ์ธ๋ฑ์ค ์ฌ์ด์ ๊ฐ๋ค์ ํฉ์ ๊ตฌํ๋๋ฐ ์ฌ์ฉํ๋ค
(์ฝ๋ฉํ ์คํธ์์ ์ฌ์ฉ ๋น๋๊ฐ ๋์ผ๋ ๊ผญ ์์๋์ด์ผ ํ๋ค!)
- ๊ตฌ๊ฐ ํฉ ์๊ณ ๋ฆฌ์ฆ์ ํ์ฉํ๋ ค๋ฉด ๋จผ์ ํฉ ๋ฐฐ์ด์ ๊ตฌํด์ผ ํ๋ค!
[ํฉ ๋ฐฐ์ด S์ ์ ์]
S[i] = A[0] + A[1] + A[2] + ... + A[i-1] + A[i] //A[0] ๋ถํฐ A[i] ๊น์ง์ ํฉ
ํฉ ๋ฐฐ์ด์ ๊ธฐ์กด์ ๋ฐฐ์ด์ ์ ์ฒ๋ฆฌํ ๋ฐฐ์ด์ด๋ผ๊ณ ์๊ฐํ๋ฉด ๋๋ค.
์ด๋ ๊ฒ ํฉ ๋ฐฐ์ด์ ๋ฏธ๋ฆฌ ๊ตฌํด๋์ผ๋ฉด ๊ธฐ์กด ๋ฐฐ์ด์ ์ผ์ ๋ฒ์์ ํฉ์ ๊ตฌํ๋ ์๊ฐ ๋ณต์ก๋๊ฐ O(N)์์ O(1)๋ก ๊ฐ์ํ๋ค

์๋ฅผ ๋ค์ด์, S(t) = ๋ฐฐ์ดA์ A[0] + A[1] + A[2] + A[3] + A[4] ์ ๊ฐ์ด๋ค.
A[i] ๋ถํฐ A[j]๊น์ง์ ๋ฐฐ์ด ํฉ์ ํฉ ๋ฐฐ์ด ์์ด ๊ตฌํ๋ ๊ฒฝ์ฐ, ์ต์ ์ ๊ฒฝ์ฐ๋ i๊ฐ 0์ด๊ณ , j๊ฐ N์ธ ๊ฒฝ์ฐ๋ก, ์๊ฐ ๋ณต์ก๋๋ O(N)์ด๋ค. => ํฉ ๋ฐฐ์ด์ ์ฌ์ฉํ๋ฉด O(1) ์์ ๋ต์ ๊ตฌํ ์ ์์
[ํฉ ๋ฐฐ์ด S๋ฅผ ๋ง๋๋ ๊ณต์]
S[i] = S[i-1] + A[i]
[๊ตฌ๊ฐ ํฉ์ ๊ตฌํ๋ ๊ณต์]
S[j] - S[i-1] //i์์ j๊น์ง์ ๊ตฌ๊ฐ ํฉ

[A[2] ๋ถํฐ A[5]๊น์ง์ ๊ตฌ๊ฐ ํฉ์ ํฉ ๋ฐฐ์ด๋ก ๊ตฌํ๋ ๊ณผ์ ]
S[5] = A[0] + A[1] + A[2] + A[3] + A[4]+ A[5]
S[1] = A[0] + A[1]
S[5] - S[1] = A[2] + A[3] + A[4]+ A[5]
๊ตฌ๊ฐ ํฉ, ๋ถ๋ถ ํฉ, ๋์ ํฉ
๋ฐฐ์ด์ ์ผ๋ถ ๊ตฌ๊ฐ์ ๋ํ ํฉ์ ๋งค์ฐ ๋น ๋ฅด๊ฒ ๊ตฌํด๋ณด์
velog.io