๋ฌธ์
https://www.acmicpc.net/problem/2167
2167๋ฒ: 2์ฐจ์ ๋ฐฐ์ด์ ํฉ
์ฒซ์งธ ์ค์ ๋ฐฐ์ด์ ํฌ๊ธฐ N, M(1 ≤ N, M ≤ 300)์ด ์ฃผ์ด์ง๋ค. ๋ค์ N๊ฐ์ ์ค์๋ M๊ฐ์ ์ ์๋ก ๋ฐฐ์ด์ด ์ฃผ์ด์ง๋ค. ๋ฐฐ์ด์ ํฌํจ๋์ด ์๋ ์๋ ์ ๋๊ฐ์ด 10,000๋ณด๋ค ์๊ฑฐ๋ ๊ฐ์ ์ ์์ด๋ค. ๊ทธ ๋ค์ ์ค์๋
www.acmicpc.net
ํ์ด
# ๋ฐฑ์ค 2167๋ฒ ๋ฌธ์ - 2์ฐจ์ ๋ฐฐ์ด์ ํฉ
n, m = map(int, input().split())
arr = [list(map(int, input().split())) for _ in range(n)]
k = int(input())
dp = [[0] * (m+1) for _ in range(n+1)]
for i in range(1, n+1):
for j in range(1, m+1):
dp[i][j] = arr[i-1][j-1] + dp[i][j-1] + dp[i-1][j] - dp[i-1][j-1]
for _ in range(k):
i,j,x,y = map(int, input().split())
print(dp[x][y] - dp[x][j-1] - dp[i-1][y] + dp[i-1][j-1])
์ฒ์์ ํ์์ ๋ ์๊ฐ์ด๊ณผ๊ฐ ๋ฐ์ํ์ฌ์ DP๋ฅผ ์ฌ์ฉํ์ฌ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ์๋ค.
'๐๏ธ Algorithm > ๐ฉ ๋ฐฑ์ค' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๐ฉ [๋ฐฑ์ค] [Python] [Class3] 11724๋ฒ_์ฐ๊ฒฐ ์์์ ๊ฐ์ (0) | 2022.11.07 |
---|---|
๐ฉ [๋ฐฑ์ค] [Python] [Class3] 1927๋ฒ_์ต๋ ํ (0) | 2022.11.07 |
๐ฉ [๋ฐฑ์ค] [Python] [๊ตฌํ] 17478๋ฒ_์ฌ๊ทํจ์๊ฐ ๋ญ๊ฐ์? (0) | 2022.11.06 |
๐ฉ [๋ฐฑ์ค] [Python] [๊ตฌํ] 1475๋ฒ_๋ฐฉ ๋ฒํธ (0) | 2022.11.05 |
๐ฉ [๋ฐฑ์ค] [Python] [DFS/BFS] 2667๋ฒ_๋จ์ง๋ฒํธ๋ถ์ด๊ธฐ (1) | 2022.11.04 |