alpyrithm_알파이리즘
[알고리즘][Python] 백준(BOJ) 11441 합 구하기_파이썬 본문
11441 합 구하기 www.acmicpc.net/problem/11441
문제 풀기 전 공부할 것 : 누적 합
풀이
<내용>
- 구간의 합을 구하는 문제로 누적합을 이용하면 쉽게 해결할 수 있다.
- 누적합 cum array를 구한다.
- cum에 nums[0]을 넣어둔다.
- for문으로 반복하면서 cum의 마지막 숫자(지금까지 누적합)와 현재 nums를 더하면 만들 수 있다.
- i, j 구간의 합을 출력한다.(index와 i, j는 차이가 1이 나기 때문에 조심해야 한다.)
<코드>
import sys
input = sys.stdin.readline
n = int(input())
nums = list(map(int, input().split()))
cum = [nums[0]]
for i in range(1, n):
cum.append(cum[-1]+nums[i])
m = int(input())
for _ in range(m):
i, j = map(int, input().split())
if i == 1:
print(cum[j-1])
else:
print(cum[j-1]-cum[i-2])
728x90
반응형
'Algorithm > 백준 알고리즘_Python' 카테고리의 다른 글
[알고리즘][Python] 백준(BOJ) 10211 Maximum Subarray_파이썬 (0) | 2020.10.27 |
---|---|
[알고리즘][Python] 백준(BOJ) 2776 암기왕_파이썬 (0) | 2020.10.24 |
[알고리즘][Python] 백준(BOJ) 1431 시리얼 번호_파이썬 (0) | 2020.10.22 |
[알고리즘][Python] 백준(BOJ) 13241 최소공배수_파이썬 (0) | 2020.10.21 |
[알고리즘][Python] 백준(BOJ) 1788 피보나치 수의 확장_파이썬 (0) | 2020.10.20 |
Comments