🐸 문제 정보
🤖 알고리즘
누적합
⏱️ 풀이 시간
13.22m
📝 풀이
그래프를 그려보고 누적합 테이블을 구하는 원리와, 답을 찾는 원리를 알아냈더니 쉽게 풀 수 있었다.
- 누적합 테이블 구하기
- pre[i][j] += pre[i - 1][j] + pre[i][j - 1] - pre[i - 1][j - 1]
- 구간 합 구하기
- pre[x2][y2] - pre[x1 - 1][y2] - pre[x2][y1 - 1] + pre[x1 - 1][y1 - 1]
🧑💻 나의 답
# pypy3
import sys
input = sys.stdin.readline
n, m = list(map(int, input().rstrip().split()))
pre = [[0] * (n + 1)] + [[0] + list(map(int, input().rstrip().split())) for _ in range(n)]
for i in range(1, n + 1):
for j in range(1, n + 1):
pre[i][j] += pre[i - 1][j] + pre[i][j - 1] - pre[i - 1][j - 1]
for _ in range(m):
x1, y1, x2, y2 = list(map(int, input().rstrip().split()))
print(pre[x2][y2] - pre[x1 - 1][y2] - pre[x2][y1 - 1] + pre[x1 - 1][y1 - 1])
'PS > 문제풀이' 카테고리의 다른 글
백준 11728 배열 합치기 Python (0) | 2024.02.02 |
---|---|
백준 15565 귀여운 라이언 Python (0) | 2024.02.02 |
백준 16987 계란으로 계란치기 Python (0) | 2024.02.02 |
백준 11724 연결 요소의 개수 Python (0) | 2024.02.02 |
백준 2146 다리 만들기 Python (0) | 2024.02.02 |