문제
https://www.acmicpc.net/problem/17390
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])
'Koala - 13기 > 코딩테스트 준비 스터디' 카테고리의 다른 글
[백준/C++] 1654번 랜선자르기 (0) | 2024.02.04 |
---|---|
[C++/백준] 15565번: 귀여운 라이언 (0) | 2024.02.04 |
[백준/C++] 부분합 (0) | 2024.02.03 |
[백준/C++] 2470번: 두 용액 (0) | 2024.02.02 |
[백준/Python] 1379번 강의실 (0) | 2024.02.02 |