합 구하기
📌 문제

예제 입력
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 |