새소식

반응형
Algotithms

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

  • -
728x90
반응형

문제

  • N짜리 수열 A를 비내림차순으로 정렬한 수열 B를 만들었다.
  • 이때 수열 B에 대한 질문 Q개가 주어진다.
    • 질문 : B_L ~ B_R 까지의 합 구하기 
    • 1 <= N, Q <= 300,000
    • 1 <= Ai <= 1,000

 

풀이

  • 누적합 구하기 (문제 조건 : 비내림차순으로 정렬한 후!)
  • 시간 복잡도
    • 그냥 다 더하는 방식으로 한다면, O(N^2)으로 시간초과

 

import sys
input = sys.stdin.readline

N, Q = map(int, input().split())
nums = list(map(int, input().split()))
nums.sort()
sum_nums = [0]
for i in range(N):
    sum_nums.append(sum_nums[-1] + nums[i])

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

 

References

반응형

'Algotithms' 카테고리의 다른 글

[백준] 16439 치킨치킨치킨  (0) 2023.04.22
[백준] 16434 드래곤 앤 던전  (0) 2023.04.21
코테 References  (0) 2023.04.21
[이것이 코딩테스트다] 커리큘럼  (0) 2023.04.20
[백준] 1647 도시분할 계획  (0) 2023.04.20
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.