백준(2167,2차원 배열의 합)

PANGHYUK·2022년 5월 18일
0

BOJ 풀이

목록 보기
3/7
post-thumbnail

문제 설명

입력

2 3
1 2 4
8 16 32
3
1 1 2 3
1 2 1 2
1 3 2 3

출력

63
2
36

손풀이

풀이

n,m = map(int,input().split())
graph = []
acc = [[0] * (m + 1) for _ in range(n + 1)]

for _ in range(n):
    graph.append(list(map(int,input().split())))

# 누적합 구하기
for i in range(1, n + 1):
    for j in range(1, m + 1):
        acc[i][j] = graph[i-1][j-1] + acc[i][j-1] + acc[i-1][j] - acc[i-1][j-1]

k = int(input())

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

0개의 댓글