-
[Python] 백준 11659 구간 합 구하기 4알고리즘/문제풀이 2021. 9. 4. 15:26728x90
1. 문제 링크
https://www.acmicpc.net/problem/11659
11659번: 구간 합 구하기 4
첫째 줄에 수의 개수 N과 합을 구해야 하는 횟수 M이 주어진다. 둘째 줄에는 N개의 수가 주어진다. 수는 1,000보다 작거나 같은 자연수이다. 셋째 줄부터 M개의 줄에는 합을 구해야 하는 구간 i와 j
www.acmicpc.net
2. 문제 요약
i번째 수부터 j번째 수까지 합을 구한다. = 구간합
3. 아이디어 정리
- 현재 수 + 앞에 존재하는 수들의 합을 구한다.
- 1에서 구한 값 j에서 i - 1을 빼면 구간에 대한 합을 구할 수 있다.
4. 문제 풀이
4-1. 내 풀이
import sys # 수의 개수, 합을 구해야하는 횟수 n, m = map(int, sys.stdin.readline().split()) arr = list(map(int, sys.stdin.readline().split())) prefix = [0] for i, a in enumerate(arr): prefix.append(prefix[i] + a) # 합을 구해야하는 구간 i, j for _ in range(m): i, j = map(int, sys.stdin.readline().split()) print(prefix[j] - prefix[i - 1])
5. 결론
- 기본적인 구간합 문제이다.
'알고리즘 > 문제풀이' 카테고리의 다른 글
[Python] Programmers 직업군 추천하기 (0) 2021.09.04 [Python] 백준 1038 감소하는 수 (3) 2021.09.04 [Python] Programmers 자동완성 (0) 2021.08.20 [Python] Programmers 124 나라의 숫자 (0) 2021.08.20 [Python] 백준 16235 나무 재테크 (0) 2021.08.20