grid 굳이 저렇게 받지 않아도 된다.
입력 어케해야 저렇게 앞에 0을 넣을 수 있을까 고민해봤는데
굳이 그럴 필요가 없었다.
dp만 그렇게 만들어주면 된다.
# 입력 속도 개선
import sys
input = sys.stdin.readline
# n, m 입력
n, m = map(int, input().split())
# grid
grid = [
list(map(int, input().split())) for _ in range(n)
]
# dp 설계
dp = [
[0] * (n+1) for _ in range(n+1)
]
# dp채워넣기
for i in range(1, n+1):
for j in range(1, n+1):
dp[i][j] = dp[i][j-1] + grid[i-1][j-1]
# x1, y1, x2, y2 입력받기
for _ in range(m):
x1, y1, x2, y2, = map(int, input().split())
# ans 설정
ans = 0
# ans 구하기
for i in range(x1, x2 + 1):
ans += dp[i][y2] - dp[i][y1-1]
#출력
print(ans)
입력속도 개선시키지 않으면 시간초과 뜨니 주의
'Algorithm(BOJ, Python) > Dynamic Programing' 카테고리의 다른 글
[백준_17216] 가장 큰 감소하는 부분수열 python (0) | 2022.07.23 |
---|---|
[백준_2491] 수열 python (0) | 2022.07.22 |
[백준_9657] 돌게임 3 python (0) | 2022.07.20 |
[백준_1699] 제곱수의 합 python (0) | 2022.07.19 |
[백준_14494] 다이나믹이 뭐예요? python (0) | 2022.07.19 |