CodingTest/Python
BOJ_11659 : ๊ตฌ๊ฐ ํฉ ๊ตฌํ๊ธฐ 4
Soom_1n
2022. 9. 5. 00:02
11659๋ฒ: ๊ตฌ๊ฐ ํฉ ๊ตฌํ๊ธฐ 4
์ฒซ์งธ ์ค์ ์์ ๊ฐ์ N๊ณผ ํฉ์ ๊ตฌํด์ผ ํ๋ ํ์ M์ด ์ฃผ์ด์ง๋ค. ๋์งธ ์ค์๋ N๊ฐ์ ์๊ฐ ์ฃผ์ด์ง๋ค. ์๋ 1,000๋ณด๋ค ์๊ฑฐ๋ ๊ฐ์ ์์ฐ์์ด๋ค. ์ ์งธ ์ค๋ถํฐ M๊ฐ์ ์ค์๋ ํฉ์ ๊ตฌํด์ผ ํ๋ ๊ตฌ๊ฐ i์ j
www.acmicpc.net
๐ธ ๋ฌธ์ ๋ถ์ ๐ธ
- ์ซ์ ๋ฆฌ์คํธ๋ฅผ ์ ๋ ฅ๋ฐ๊ณ , ํน์ ๊ตฌ๊ฐ์ ๋ํ ํฉ์ ์ถ๋ ฅํ๋ค.
๐ธ ์ฝ๋ ๐ธ
import sys
n, m = map(int, sys.stdin.readline().rstrip().split())
arr = list(map(int, sys.stdin.readline().rstrip().split()))
acc = [0]
for i in arr:
acc.append(acc[-1] + i)
for _ in range(m):
start, end = map(int, sys.stdin.readline().rstrip().split())
sys.stdout.write(str(acc[end] - acc[start-1]) + "\n")
๐ธ ์ฝ๋ ํด์ ๐ธ
- n, m์ ๋ฒ์๊ฐ 10๋ง์ด๊ณ , ์ ํ์๊ฐ์ด 1์ด์ฌ์ ๋น ๋ฅธ ์ ์ถ๋ ฅ์ ์ฌ์ฉํ๋ค.
- ์๊ฐ์์ ๋์ ํฉ์ ๊ณ์ฐํ๊ธฐ ์ํด์ ๋ฏธ๋ฆฌ ๋ฆฌ์คํธ์ ์์๋ฅผ ์์ฐจ์ ์ผ๋ก ๋์ ํ acc ๋ฆฌ์คํธ๋ฅผ ๊ณ์ฐํด๋๋ค.
- -1 ์ธ๋ฑ์ค๋ฅผ ์ฌ์ฉํ๊ณ , ์ ๋ ฅ ์ธ๋ฑ์ค์ ๊ฐ์ ๋ง์ถ๊ธฐ ์ํด ์ด๊ธฐ๊ฐ 0์ ๋ฃ๋๋ค.
- ์ธ๋ฑ์ค start ~ end ์ ํฉ์ ๋์ ๋ฆฌ์คํธ์์ end๋ฒ ์์ - (start-1)๋ฒ์์์ด๋ค
๐ธ end ๐ธ
- ์ฒซ ํ์ด์์ ๊ทธ๋ฅ ๋ฆฌ์คํธ ์ฌ๋ผ์ด์ฑ์ sum()ํจ์๋ก ํฉ์ ๊ตฌํ๋ ์๊ฐ์ด๊ณผ๊ฐ ๋์๋ค.
- ๋ฌธ์ ์ ํ๊ทธ๊ฐ ๋์ ํฉ์ด์ด์ ๋ฏธ๋ฆฌ ๊ณ์ฐํด๋๋ ๊ฒ ๊ฐ์ ๊ท์น์ ์๊ฐํด๋ณด๋, ํ์ด๋ฅผ ๋ ์ฌ๋ฆด ์ ์์๋ค.
- ๋์ ํฉ ํ๊ทธ๋ ์์ฃผ ๊ฐ๋จํ ๋ฌธ์ ๋ค๋ง ๋ดค์๋๋ฐ, ์ด์ ์ ์ ๋์ด๋๊ฐ ์ฌ๋ผ๊ฐ๋ ์ถ๋ค.
- ๊ฒ์ํ์ง ์๊ณ ํ์ด์ ์ฑ๊ณตํ๊ฒ ๋ฟ๋ฏํ๋ค.
728x90