[백준] #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

BELATED ARTICLES

more