2차원 DP를 푸는 게 아직 너무 어색하다,
- 어려웠던 점
- 누적합 데이터를 쌓아가는 부분
- 누적합 그래프를 바탕으로 일부 값을 계산하는 식을 짜는 부분
참고한 블로그
[python/파이썬] 백준 11660 구간 합 구하기 5
문제 N×N개의 수가 N×N 크기의 표에 채워져 있다. (x1, y1)부터 (x2, y2)까지 합을 구하는 프로그램을 작성하시오. (x, y)는 x행 y열을 의미한다. 예를 들어, N = 4이고, 표가 아래와 같이 채워져 있는 경
sodehdt-ldkt.tistory.com
[백준] 11660 구간 합 구하기 5 (python) - 누적 합 (2차원) 정리
문제 링크 : https://www.acmicpc.net/problem/11660 11660번: 구간 합 구하기 5 첫째 줄에 표의 크기 N과 합을 구해야 하는 횟수 M이 주어진다. (1 ≤ N ≤ 1024, 1 ≤ M ≤ 100,000) 둘째 줄부터 N개의 줄에는..
castlerain.tistory.com
코드
import sys
input = sys.stdin.readline
#sys.stdin = open("input.txt", "rt")
N, M = map(int, input().split())
G = [list(map(int, input().split())) for _ in range(N)]
DP = [[0] * (N + 1) for _ in range(N + 1)]
for i in range(1, N + 1):
for j in range(1, N + 1):
DP[i][j] = DP[i - 1][j] + DP[i][j - 1] - DP[i - 1][j - 1] + G[i - 1][j - 1]
# point !!
for k in range(M):
x1, y1, x2, y2 = map(int, input().split())
result = DP[x2][y2] - DP[x2][y1 - 1] - DP[x1 - 1][y2] + DP[x1 - 1][y1 - 1]
# point !!
print(result)
'⚡️algorithm > step-up ++' 카테고리의 다른 글
다익스트라와 이진트리 (feat. min heap 구현) (0) | 2025.01.09 |
---|---|
[스택, 수 비교] 프로그래머스 lv2. 뒤에 있는 큰 수 찾기 (0) | 2023.02.23 |
[다익스트라, Dijkstra, 구조] 백준 1753. 최단 경로 (0) | 2022.10.12 |
[dictionary, 조건에 맞는 값 탐색, 효율성] 프로그래머스 lv2. 순위검색 (feat. lambda, filter, map, combination, get(key)) (0) | 2022.09.14 |
[Dictionary 탐색] 프로그래머스 lv2. 신고결과받기 (feat. enumerate, set, dictionary) (0) | 2022.09.08 |