BOJ/Silver

[BOJ] #11441 합 구하기

Opal1031 2026. 4. 13. 11:29

합 구하기

백준 #11441


📌 문제

예제 입력

5
10 20 30 40 50
5
1 3
2 4
3 5
1 5
4 4

예제 출력

60
90
120
150
40

📌 풀이

Logic

  • 정수 개수 N 입력 받기
  • N개의 정수 리스트 입력 받기
  • 누적합 리스트 생성
  • 구간 개수 M 입력 받기
  • 구간 입력 받기 및 결과 출력
# 변수명
N : 입력할 정수 개수
list : 입력한 정수 리스트
prefix_sum : 누적 합 리스트
M : 입력한 구간 개수
start, end : 구간의 시작, 끝

Python

import sys

N = int(sys.stdin.readline())

list = [int(x) for x in sys.stdin.readline().split()]
prefix_sum = [0] * (N + 1)

for i in range(N):
    prefix_sum[i + 1] = prefix_sum[i] + list[i]    

M = int(sys.stdin.readline())

for j in range(M):
    start, end = map(int, sys.stdin.readline().split())

    total = prefix_sum[end] - prefix_sum[start - 1]    

    print(total)

✏️ 새로운 내용

-


📚 회고

💡 누적 합

  • 구간을 매번 직접 계산하는 방식으로 구현했더니 시간 초과가 발생했다.
  • 입력값들의 누적 합을 미리 구해두면, (start, end) 범위의 합을 빠르게 구할 수 있다.

'BOJ > Silver' 카테고리의 다른 글

[BOJ] #9012 괄호  (0) 2026.04.13
[BOJ] #18110 solved.ac  (0) 2026.04.13
[BOJ] #2553 마지막 팩토리얼 수  (0) 2026.04.13
[BOJ] #1448 삼각형 만들기  (0) 2026.04.13
[BOJ] #1913 달팽이  (0) 2026.04.13