11659๋ฒ: ๊ตฌ๊ฐ ํฉ ๊ตฌํ๊ธฐ 4
์ฒซ์งธ ์ค์ ์์ ๊ฐ์ N๊ณผ ํฉ์ ๊ตฌํด์ผ ํ๋ ํ์ M์ด ์ฃผ์ด์ง๋ค. ๋์งธ ์ค์๋ N๊ฐ์ ์๊ฐ ์ฃผ์ด์ง๋ค. ์๋ 1,000๋ณด๋ค ์๊ฑฐ๋ ๊ฐ์ ์์ฐ์์ด๋ค. ์ ์งธ ์ค๋ถํฐ M๊ฐ์ ์ค์๋ ํฉ์ ๊ตฌํด์ผ ํ๋ ๊ตฌ๊ฐ i์ j
www.acmicpc.net
๋ฌธ์
์ N๊ฐ๊ฐ ์ฃผ์ด์ก์ ๋, i๋ฒ์งธ ์๋ถํฐ j๋ฒ์งธ ์๊น์ง ํฉ์ ๊ตฌํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์์ค.
์ ๋ ฅ
์ฒซ์งธ ์ค์ ์์ ๊ฐ์ N๊ณผ ํฉ์ ๊ตฌํด์ผ ํ๋ ํ์ M์ด ์ฃผ์ด์ง๋ค. ๋์งธ ์ค์๋ N๊ฐ์ ์๊ฐ ์ฃผ์ด์ง๋ค. ์๋ 1,000๋ณด๋ค ์๊ฑฐ๋ ๊ฐ์ ์์ฐ์์ด๋ค. ์ ์งธ ์ค๋ถํฐ M๊ฐ์ ์ค์๋ ํฉ์ ๊ตฌํด์ผ ํ๋ ๊ตฌ๊ฐ i์ j๊ฐ ์ฃผ์ด์ง๋ค.
์ถ๋ ฅ
์ด M๊ฐ์ ์ค์ ์ ๋ ฅ์ผ๋ก ์ฃผ์ด์ง i๋ฒ์งธ ์๋ถํฐ j๋ฒ์งธ ์๊น์ง ํฉ์ ์ถ๋ ฅํ๋ค.
์์ ์ ๋ ฅ
5 3
5 4 3 2 1
1 3
2 4
5 5
์์ ์ถ๋ ฅ
12
9
1
์ค๋ช
N๊ฐ์ ์๋ฅผ i ~ j๋ฒ์งธ๊น์ง์ ํฉ์ ์ถ๋ ฅํด์ผ ํ๋ค.
ํ์ด
- ๋์ ํฉ ์๊ณ ๋ฆฌ์ฆ ์ด์ฉ
๋์ ํฉ ๊ตฌํ๋ ์ฝ๋
array = [10, 20, 30, 40, 50]
n = len(array)
prefix_sum = [0] * (n + 1)
for i in range(n):
prefix_sum[i + 1] = prefix_sum[i] + array[i]
๊ฒฐ๊ณผ : prefix_sum[0, 10, 30, 60, 100, 150]
๋์ ํฉ ์๊ณ ๋ฆฌ์ฆ ์ค๋ช - https://dev-cloud.tistory.com/141
Solution
import sys
input = sys.stdin.readline
N, M = map(int, input().split())
n = list(map(int, input().split()))
prefix_sum = [0]*(N+1)
for k in range(N):
prefix_sum[k+1] = prefix_sum[k] + n[k]
for _ in range(M):
i, j = map(int, input().split())
print(prefix_sum[j] - prefix_sum[i-1])
์๊ฐ ์ด๊ณผ ํ์ด
#1
for _ in range(M):
i, j = map(int, input().split())
ans = 0
while i <= j:
ans += n[i-1]
i += 1
print(ans)
#2
for _ in range(M):
i, j = map(int, input().split())
prefix_sum = [0] * (N + 2)
while i <= j:
prefix_sum[i+1] = prefix_sum[i] + n[i-1]
i += 1
print(prefix_sum[j+1])
#3
def p_s(x, y):
prefix_sum = [0] * (N + 2)
for k in range(x, y+1):
prefix_sum[k+1] = prefix_sum[k] + n[k-1]
return prefix_sum[j+1]
for _ in range(M):
i, j = map(int, input().split())
print(p_s(i, j))
'๐งฉ Algorithm > [BOJ] Silver' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| BOJ 1181๋ฒ : ๋จ์ด ์ ๋ ฌ (Python/Silver 5) (0) | 2023.03.24 |
|---|---|
| BOJ 11441๋ฒ : ํฉ ๊ตฌํ๊ธฐ (Python/Silver 3) (0) | 2023.03.22 |
| BOJ 10816๋ฒ : ์ซ์ ์นด๋2 (Python/Silver 4) (0) | 2023.03.20 |
| BOJ 16401๋ฒ : ๊ณผ์ ๋๋ ์ฃผ๊ธฐ (Python/Silver 2) (0) | 2023.03.20 |
| BOJ 11399๋ฒ : ATM (Python/Silver 4) (0) | 2023.03.02 |