해결
import sys
input=sys.stdin.readline
n,m=map(int,input().split())
arr=[list(map(int,input().split())) for _ in range(n)] #입력 받은 2차원배열
S=[[0 for _ in range(m+1)] for __ in range(n+1)] #원래 배열보다 행,열(위 한칸,왼쪽 한칸) 더 만들어 0으로 채워두고 시작
for i in range(1,n+1):
for j in range(1,m+1):
S[i][j]=S[i-1][j]+S[i][j-1]-S[i-1][j-1]+arr[i-1][j-1] #2차원 누적합 배열 S 만들기
k=int(input().rstrip())
for _ in range(k):
i,j,x,y=map(int,input().split())
res=S[x][y]-S[x][j-1]-S[i-1][y]+S[i-1][j-1] #누적합 배열 S 이용해 각각 부분합 구하기
print(res)
'문제 풀이 > 백준' 카테고리의 다른 글
[백준] 1541번 잃어버린 괄호 (0) | 2024.07.01 |
---|---|
[백준] 2435번 기상청 인턴 신현수 (0) | 2024.06.26 |
[백준] 2559번 수열 (0) | 2024.06.19 |
[백준] 11659번 구간 합 구하기 4 (1) | 2024.06.19 |
[백준] 11656번 접미사 배열 (0) | 2023.12.02 |
댓글