코딩테스트/BOJ

[백준][누적합] 2167. 2차원 배열의 합

박소민 2024. 6. 26. 23:50
2167. 2차원 배열의 합

 

 

  • 내 풀이
    • 2차원 누적합의 기본

이 부분을 구하기 위해
이 부분을 빼고
이 부분을 빼고
중복된 이부분을 더해주면 됨

 

n, m = map(int, input().split())
graph = [list(map(int, input().split())) for _ in range(n)]
dp = [[0 for _ in range(m+1)] for _ in range(n+1)]
for i in range(1, n+1):
    for j in range(1, m+1):
        dp[i][j] = dp[i-1][j]+dp[i][j-1]-dp[i-1][j-1]+graph[i-1][j-1]

k = int(input())
for _ in range(k):
    i, j, x, y = map(int, input().split())
    print(dp[x][y]-dp[i-1][y]-dp[x][j-1]+dp[i-1][j-1])