Skip to content

Latest commit

ย 

History

History
77 lines (46 loc) ยท 2.35 KB

Prefix_Sum.md

File metadata and controls

77 lines (46 loc) ยท 2.35 KB

๋ˆ„์ ํ•ฉ

- ๋ฐฐ์—ด์˜ ์ผ๋ถ€ ๊ตฌ๊ฐ„์— ๋Œ€ํ•œ ํ•ฉ์„ ๋น ๋ฅด๊ฒŒ ๊ตฌํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ฃผ๋Š” ์Šคํ‚ฌ

- n๊ฐœ์˜ ์›์†Œ๋กœ ์ด๋ฃจ์–ด์ง„ ๋ฐฐ์—ด์ด ์ฃผ์–ด์กŒ์„ ๋•Œ ๋ฐ˜๋ณต๋ฌธ์„ ํ†ตํ•ด ๋ฐฐ์—ด์˜ ํ•ฉ์„ ๊ตฌํ•˜๋ ค๋ฉด O(n)์ด ๊ฑธ๋ฆฌ๋Š”๋ฐ 
  ๋ถ€๋ถ„ํ•ฉ์„ ์ด์šฉํ•˜๋ฉด ๋ชจ๋“  ๋ถ€๋ถ„ํ•ฉ์„ O(1)์— ๋ฐ”๋กœ ๊ตฌํ•˜๊ธฐ ๊ฐ€๋Šฅ

- ๋ˆ„์ ํ•ฉ์€ ๋ฌธ์ œ์—์„œ ์ˆ˜์—ด์ด ์ฃผ์–ด์ง€๊ณ  ์–ด๋–ค ๊ตฌ๊ฐ„์˜ ๊ฐ’์˜ ํ•ฉ์„ ๊ตฌํ•ด์•ผ ํ•  ๋•Œ ์“ฐ์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

1๏ธโƒฃ 1์ฐจ์› ๋ฐฐ์—ด

ex) ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋ฐฐ์—ด์ด ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•˜์ž.

arr = [2 , 5 , 1 , 4 , 3 , 2]

sum = [2 , 7 , 8 , 12 , 15 , 17]

์œ„ ๋ฐฐ์—ด์—์„œ ์—ฐ์†๋œ ๊ตฌ๊ฐ„์˜ ํ•ฉ, ์˜ˆ๋ฅผ๋“ค์–ด arr[2]๋ถ€ํ„ฐ arr[4]๊นŒ์ง€์˜
ํ•ฉ์„ ๊ตฌํ•˜๋ ค๊ณ  ํ•œ๋‹ค๋ฉด 3๊ฐœ์˜ ์›์†Œ๊ฐ’์„ ์ฐธ์กฐํ•ด์•ผํ•œ๋‹ค.

์ด๋Ÿฌํ•œ ์ ์„ ๋ณด์™„ํ•˜๊ธฐ ์œ„ํ•ด์„œ ๋ˆ„์ ํ•ฉ ์ˆ˜์—ด sum์„ ๋„์ž…ํ•œ๋‹ค.

โ— sum[R]๋Š” arr[0]๋ถ€ํ„ฐ arr[R]๊นŒ์ง€์˜ ๋ชจ๋“  ์›์†Œ์˜ ํ•ฉ์„ ๊ฐ’์œผ๋กœ ๊ฐ–๋Š”๋‹ค. ๋˜ํ•œ arr[L]๋ถ€ํ„ฐ arr[R]๊นŒ์ง€์˜ ๋ถ€๋ถ„ํ•ฉ์€ sum[R] - sum_list[L-1]๋กœ ์ •์˜ํ•  ์ˆ˜ ์žˆ๋‹ค.



2๏ธโƒฃ 2์ฐจ์› ๋ฐฐ์—ด


๋นจ๊ฐ„ ๋ถ€๋ถ„ (3, 3)๋ถ€ํ„ฐ (5, 5)์˜ ํ•ฉ์„ ์–ด๋–ป๊ฒŒ ๊ตฌํ•  ์ˆ˜ ์žˆ์„๊นŒ?
 prefixSum[5][5]๋Š” (1,1)๋ถ€ํ„ฐ (5,5)๊นŒ์ง€์˜ ํ•ฉ์„ ๋‚˜ํƒ€๋‚ด๋ฏ€๋กœ ํ•ด๋‹น ๋ถ€๋ถ„์—์„œ 
 ์ € ๋…น์ƒ‰ ๋ถ€๋ถ„(prefixSum[2,5])์„ ๋นผ์ฃผ๊ณ , ๋…ธ๋ž€ ๋ถ€๋ถ„(prefixSum[5][2])์„ ๋นผ์ฃผ๊ณ , 
 ๋‘๋ฒˆ ๋น ์ง„ ๋…น์ƒ‰๊ณผ ๋…ธ๋ž€์ƒ‰์ด ๋งŒ๋‚˜๋Š” ๋ถ€๋ถ„(prefixSum[2][2])๋ฅผ ํ•œ๋ฒˆ ๋” ๋”ํ•ด์ฃผ๋ฉด ๋  ๊ฒƒ์ด๋‹ค.


์ฆ‰, (3,3)๋ถ€ํ„ฐ (5,5)๊นŒ์ง€์˜ 2์ฐจ์› ๊ตฌ๊ฐ„ํ•ฉ = prefixSum[5][5] -
prefixSum[5][3-1] - prefixSum[3-1][5] + prefixSum[3-1][3-1] = 36

(x1, y1)๋ถ€ํ„ฐ (x2, y2) ๊นŒ์ง€(x1<=x2, y1<=y2)๋ผ๊ณ  ๋ณด๋ฉด 
๊ตฌํ•˜๊ณ ์ž ํ•˜๋Š” 2์ฐจ์› ๊ตฌ๊ฐ„ํ•ฉ

prefixSum[x2][y2] - prefixSum[x2][y1-1] - prefixSum[x1-1][y2] + prefixSum[x1-1][y1-1]



ํ’€์–ด๋ณผ๋งŒํ•œ ๋ฌธ์ œ๋“ค

  1. ๋ฐฑ์ค€ 10986 ๋‚˜๋จธ์ง€ํ•ฉ https://www.acmicpc.net/problem/10986

  2. ๋ฐฑ์ค€ 11660 ๊ตฌ๊ฐ„ ํ•ฉ ๊ตฌํ•˜๊ธฐ5 https://www.acmicpc.net/problem/11660



Reference

https://nahwasa.com/entry/%EB%88%84%EC%A0%81-%ED%95%A9prefix-sum-2%EC%B0%A8%EC%9B%90-%EB%88%84%EC%A0%81%ED%95%A9prefix-sum-of-matrix-with-java