[백준] #11659 구간 합 구하기 4
2023. 1. 12. 06:00
https://www.acmicpc.net/problem/11659
11659번: 구간 합 구하기 4
첫째 줄에 수의 개수 N과 합을 구해야 하는 횟수 M이 주어진다. 둘째 줄에는 N개의 수가 주어진다. 수는 1,000보다 작거나 같은 자연수이다. 셋째 줄부터 M개의 줄에는 합을 구해야 하는 구간 i와 j
www.acmicpc.net
📕 설명 📕
구간을 Indexing한 뒤, sum 함수를 이용해 풀이하였다.
그냥 indexing으로 sum을 하면 시간초과가 발생하므로,
prefix_sum 알고리즘을 사용해야한다.
새로운 배열에 값을 쌓는 형식으로 계속 더해서 넣은 후 indexing으로 값을 계산한다.
pypy로 실행하여 시간초과를 피하였다.
🧑🏻💻 나의 풀이 🧑🏻💻
N, M = map(int, input().split())
N_list = list(map(int, input().split()))
tmp = 0
tmp_val = []
for i in N_list:
tmp += i
tmp_val.append(tmp)
for i in range(M):
i, j = map(int,input().split())
if i == 1:
print(tmp_val[j-1])
else:
print(tmp_val[j-1] - tmp_val[i-2])
'Programming > Algorithm' 카테고리의 다른 글
[백준] #10953 A + B - 6 python (0) | 2023.01.14 |
---|---|
[백준] #2559 수열 python (0) | 2023.01.13 |
[백준] #9663 N-Queen python (0) | 2023.01.11 |
[백준] #15652 N과 M (4) python (1) | 2023.01.10 |
[백준] #7576 토마토 python (0) | 2023.01.09 |