Koala - 13기/코딩테스트 준비 스터디

[백준 / Python] #17390 이건 꼭 풀어야 해!

dudcks 2024. 2. 4. 14:05

문제

 

https://www.acmicpc.net/problem/17390

 

17390번: 이건 꼭 풀어야 해!

[2, 5, 1, 2, 3]을 비내림차순으로 정렬하면 [1, 2, 2, 3, 5]이다.

www.acmicpc.net


Algorithm

수열을 비내림차순으로 정렬 후에 문제에서 주어지는 구간의 합을 출력하면 되는 문제이다.

구간의 합을 출력하면 되므로 누적합을 사용하였고, 비내림차순으로 정렬하기위해 .sort()함수를 사용하였다.

누적합을 사용할 수 있으면 쉽게 풀리는 문제였던것 같다.


 

 

Code

input = __import__('sys').stdin.readline

n,q = map(int,input().split())
arr = list(map(int,input().split()))
arr.sort()
prefix = [0]*(n+1)

for i in range(1,n+1):
    prefix[i] = prefix[i-1] + arr[i-1]

for _ in range(q):
    l,r = map(int,input().split())
    print(prefix[r]-prefix[l-1])