๐ Problem Link
11659๋ฒ: ๊ตฌ๊ฐ ํฉ ๊ตฌํ๊ธฐ 4
์ฒซ์งธ ์ค์ ์์ ๊ฐ์ N๊ณผ ํฉ์ ๊ตฌํด์ผ ํ๋ ํ์ M์ด ์ฃผ์ด์ง๋ค. ๋์งธ ์ค์๋ N๊ฐ์ ์๊ฐ ์ฃผ์ด์ง๋ค. ์๋ 1,000๋ณด๋ค ์๊ฑฐ๋ ๊ฐ์ ์์ฐ์์ด๋ค. ์ ์งธ ์ค๋ถํฐ M๊ฐ์ ์ค์๋ ํฉ์ ๊ตฌํด์ผ ํ๋ ๊ตฌ๊ฐ i์ j
www.acmicpc.net
โThinking
- ์ฃผ์ด์ง N๊ฐ์ ์ซ์๋ค ์ค, i๋ฒ์งธ์์ j๋ฒ์งธ ๊น์ง์ ํฉ์ ๊ตฌํด ๋ฐํํ๋ค.
๐ปSolution
import sys
N, M = map(int, sys.stdin.readline().split())
numbers = list(map(int, sys.stdin.readline().split()))
numbers_sum = [0]
tmp_sum = 0
for i in numbers:
tmp_sum += i
numbers_sum.append(tmp_sum)
for i in range(M):
start, end = map(int, sys.stdin.readline().split())
print(numbers_sum[end] - numbers_sum[start-1])
๐๏ธkeypoint
- list slice๋ฅผ ํตํ sum()์ ์๊ฐ์ด๊ณผ๊ฐ ๋ฐ์ํ๋ค.
- ๊ตฌ๊ฐํฉ์ ์ฒ์๋ถํฐ j๋ฒ์งธ๊น์ง์ ํฉ์์ ์ฒ์๋ถํฐ i-1๋ฒ์งธ๊น์ง์ ํฉ์ ๋บธ ๊ฐ์ด๋ค.