<문제 링크>
https://www.acmicpc.net/problem/11659
<정답 코드>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
import sys
input = sys.stdin.read
data = input().split() # 한번에 입력 받기
n, m = map(int, data[0:2])
nums = list(map(int, data[2:n+2]))
sums = [0] * (n+1) # 누적합 저장할 sums 배열 초기화
for i in range(1, n+1):
sums[i] = sums[i-1] + nums[i-1]
index = n+2
results = []
for _ in range(m):
a = int(data[index])
b = int(data[index + 1])
index += 2
results.append(sums[b] - sums[a-1])
print("\n".join(map(str, results))) # results 값들 한줄씩 출력
|
cs |
누적합으로 풀지 않으면 시간초과
🔷 누적합이란?
'프로그래밍 > Python' 카테고리의 다른 글
백준_python 2468번 안전 영역 (BFS, DFS, 부르트포스 그래프) (0) | 2024.05.13 |
---|---|
백준_python 7576번 토마토 (그래프, BFS) (0) | 2024.05.09 |
백준_python 9375번 패션왕 신해빈(딕셔너리) (1) | 2024.04.26 |
정규표현식_python 단어만 남기고 비단어 문자 제거 (0) | 2024.04.25 |
백준_python 10942번 팰린드롬?(시간초과, DP) (0) | 2024.04.23 |