์•Œ๊ณ ๋ฆฌ์ฆ˜ ๐Ÿ“š

[์•Œ๊ณ ๋ฆฌ์ฆ˜] ๋ˆ„์ ํ•ฉ ์•Œ๊ณ ๋ฆฌ์ฆ˜

leejaejae 2024. 7. 18. 21:57

๋ˆ„์ ํ•ฉ ์•Œ๊ณ ๋ฆฌ์ฆ˜

  • DP ์•Œ๊ณ ๋ฆฌ์ฆ˜์— ์†ํ•จ
  • ์ „์ฒ˜๋ฆฌ๋ฅผ ํ•œ ํ›„์—๋Š” 1์ฐจ์›ใƒป2์ฐจ์› ๋ฐฐ์—ด์˜ ํ•ฉ์„ ๐‘‚(๐Ÿ) ๋งŒ์— ๊ตฌํ•  ์ˆ˜ ์žˆ๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜

 

1์ฐจ์› ๋ฐฐ์—ด์—์„œ ๋ˆ„์ ํ•ฉ

  • ์Œ์ˆ˜ ์žˆ์–ด๋„ ์ž˜ ๋™์ž‘ํ•จ

  • Dp ํ…Œ์ด๋ธ” ์„ค๊ณ„
    • psum[n]: 1~n๋ฒˆ์งธ ์›์†Œ๊นŒ์ง€์˜ ํ•ฉ
  • ๊ด€๊ณ„์‹
    • psum[n] = psum[n-1] + arr[n]
  • a๋ถ€ํ„ฐ b๊นŒ์ง€ ์›์†Œ์˜ ํ•ฉ์„ ๊ตฌํ•˜๋Š” ๋ฐฉ๋ฒ•
    • psum[b] - psum[a-1]

 

2์ฐจ์› ๋ฐฐ์—ด์—์„œ ๋ˆ„์ ํ•ฉ

  • 2์ฐจ์› ๋ฐฐ์—ด์˜ ์„ธ๋กœ ๊ธธ์ด๋ฅผ N, ๊ฐ€๋กœ ๊ธธ์ด๋ฅผ M์ด๋ผ๊ณ  ํ•  ๋•Œ, ๐‘‚(๐‘๐‘€) ์˜ ์ „์ฒ˜๋ฆฌ๋ฅผ ์ˆ˜ํ–‰ํ•˜๋ฉด ๋จ

  • DP ํ…Œ์ด๋ธ” ์„ค๊ณ„
    • psun[n][m]: (1, 1)๋ถ€ํ„ฐ (n, m)๊นŒ์ง€์˜ 2์ฐจ์› ํ•ฉ
  • ๊ด€๊ณ„์‹
    • psum[n][m] = (psum[n][m-1] + psum[n-1][m] - psum[n-1][m-1]) + arr[n]
  • (sy, sx)๋ถ€ํ„ฐ (ey, ex)๊นŒ์ง€์˜ 2์ฐจ์› ํ•ฉ ๊ตฌํ•˜๋Š” ๋ฐฉ๋ฒ•
    • psum[ey][ex] - (psum[ey][sx-1] + psum[sy-1][ex] - psum[sy-1][sx-1])

 

๋ˆ„์ ํ•ฉ ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ์–ธ์ œ ์“ธ๊นŒ!?

  • 1์ฐจ์› ๋ฐฐ์—ด์˜ ๋ˆ„์ ํ•ฉ
    • ์—ฐ์†๋œ ํ•ฉ์˜ ๊ตฌ๊ฐ„์„ ์—ฌ๋Ÿฌ ๋ฒˆ ๊ตฌํ•ด์•ผ ํ•  ๋•Œ
    • ๐‘‚(๐‘³) → ๐‘‚(๐‘²)
  • 2์ฐจ์› ๋ฐฐ์—ด์˜ ๋ˆ„์ ํ•ฉ
    • (์ง์‚ฌ๊ฐํ˜• ๋ชจ์–‘์˜) 2์ฐจ์› ํ•ฉ์„ ์—ฌ๋Ÿฌ ๋ฒˆ ๊ตฌํ•ด์•ผ ํ•  ๋•Œ
    • ๐‘‚((๐‘๐‘€)³) → ๐‘‚((๐‘๐‘€)²)