https://www.acmicpc.net/problem/11660
๊ตฌ๊ฐ ํฉ ๊ตฌํ๊ธฐ 2์ฐจ์ ๋ฒ์
์์ด๋์ด
1. ๋์ ํฉ ์ฌ์ฉ
- ๊ตฌ๊ฐ ํฉ ๊ตฌํ๊ธฐ 4์ ์ ์ฌํ๊ฒ ํ์๋ค
- ๋จผ์ (0 ,0)์์ (x , y)๊น์ง์ ํฉ์ arr [x][y]์ ์ ์ฅํ๋ค. ๊ทธ๋ผ ์๋์ ๊ฐ์ ๋ฆฌ์คํธ๋ฅผ ๋ง๋ค ์ ์๋ค.
- ์ด๊ฑธ ์ฌ์ฉํด์ ๊ตฌ๊ฐ ํฉ์ ๊ตฌํ๋ฉด ๋๋ค.
- ์๋ฅผ ๋ค์ด (1, 1)์์ (2, 3)๊น์ง ๊ตฌํ๋ ค๋ฉด(๋ฌธ์ ์์๋ 2,2 ~ 3,4) arr [2][3]์์ arr[2][0]๊ณผ arr[0][3]๋ฅผ ๋นผ๊ณ arr[0][0]์ ๋ํด์ฃผ๋ฉด ๋๋ค.
์ ์ฒด ์ฝ๋
import sys
N, M = map(int, input().split())
arr = []
for _ in range(N):
arr.append([int(x) for x in sys.stdin.readline().rstrip().split()])
for i in range(N):
for j in range(1, N):
arr[i][j] += arr[i][j - 1]
for j in range(N):
for i in range(1, N):
arr[i][j] += arr[i - 1][j]
for _ in range(M):
ans = 0
x1, y1, x2, y2 = map(int, sys.stdin.readline().rstrip().split())
x1 -= 1
x2 -= 1
y1 -= 1
y2 -= 1 # ์ขํ ์กฐ์
ans += arr[x2][y2]
if x1 - 1 >= 0:
ans -= arr[x1 - 1][y2]
if y1 - 1 >= 0:
ans -= arr[x2][y1 - 1]
if x1 - 1 >= 0 and y1 - 1 >= 0:
ans += arr[x1 - 1][y1 - 1]
print(ans)
์ฝ๋ ์ค๋ช
import sys
N, M = map(int, input().split())
arr = []
for _ in range(N):
arr.append([int(x) for x in sys.stdin.readline().rstrip().split()])
for i in range(N):
for j in range(1, N):
arr[i][j] += arr[i][j - 1]
for j in range(N):
for i in range(1, N):
arr[i][j] += arr[i - 1][j]
์์ ์ค๋ช ํ ๋ฐฐ์ด์ ๋ง๋๋ ๊ณผ์ ์ด๋ค.
2์ฐจ์ ๋ฐฐ์ด์์ ๋์ ํฉ์ ๊ตฌํ๋ ค๋ฉด ํ์ ๊ธฐ์ค์ผ๋ก ํ๋ฒ, ์ด์ ๊ธฐ์ค์ผ๋ก ํ๋ฒ ๋์ ํด์ ๋ํด์ฃผ๋ฉด ๋๋ค.
for _ in range(M):
ans = 0
x1, y1, x2, y2 = map(int, sys.stdin.readline().rstrip().split())
x1 -= 1
x2 -= 1
y1 -= 1
y2 -= 1 # ์ขํ ์กฐ์
ans += arr[x2][y2]
if x1 - 1 >= 0:
ans -= arr[x1 - 1][y2]
if y1 - 1 >= 0:
ans -= arr[x2][y1 - 1]
if x1 - 1 >= 0 and y1 - 1 >= 0:
ans += arr[x1 - 1][y1 - 1]
print(ans)
๋ฌธ์ ์์๋ (1,1)๋ถํฐ ์์์ด๋ฏ๋ก ๊ฐ ์ขํ์์ -1 ํด์ค๋ค.
๊ทธ๋ฆฌ๊ณ ์์์ ์ค๋ช ํ ์ฐ์ฐ์ ์ํํ๋ฉด ๋๋ค.
๋จ, ๋ฐฐ์ด์ index๋ฅผ ๋์ด๊ฐ๋ฉด ์ ๋๋ฏ๋ก ์กฐ๊ฑด์ ์ถ๊ฐํด์ ์ํํ๋ค.
'๐งฉ Problem Solving > [๋ฐฑ์ค]' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๋ฐฑ์ค] 2583 ์์ญ ๊ตฌํ๊ธฐ(python ํ์ด์ฌ) (0) | 2023.03.16 |
---|---|
[๋ฐฑ์ค] 14938 ์๊ฐ๊ทธ๋ผ์ด๋ (python ํ์ด์ฌ) (0) | 2022.09.10 |
[๋ฐฑ์ค] 10942 ํฐ๋ฆฐ๋๋กฌ? (python ํ์ด์ฌ) (0) | 2022.08.17 |
[๋ฐฑ์ค] 1647 ๋์ ๋ถํ ๊ณํ (python ํ์ด์ฌ) (0) | 2022.08.01 |
[๋ฐฑ์ค] 1644 ์์์ ์ฐ์ํฉ (python ํ์ด์ฌ) (0) | 2022.07.31 |