구간 합 (Prefix Sum)
·
코딩테스트/Python
1차원 배열의 구간 합 해당 구간의 값을 더해가면서 구간 합 배열에 넣는다. (S[i] = S[i-1] + A[i]) i부터 j 까지의 합은 S[j] - S[i-1]로 구할 수 있다. s = [0] a = [1,2,3,4,5] temp = 0 for i in a: temp += i s.append(temp) 2차원 배열의 구간 합 2차원 배열에서의 구간 합은 (1,1)에서 (i,j)까지 영역의 모든 수의 합이다. 구간 합 배열은 S[i-1][j] + S[i][j-1] - S[i-1][j-1] + A[i][j] 로 구할 수 있다. 위의 예시에서 (3,3)에서 (5,5)까지의 구간 합은 빨간색 + 노란색 + 초록색 - 노란색과 초록색이 겹치는 부분이다. 따라서, 특정 구간의 구간 합은 S[X2][Y2] - ..
[Baekjoon] 11659. 구간 합 구하기 4
·
카테고리 없음
🔗 Problem Link 11659번: 구간 합 구하기 4 첫째 줄에 수의 개수 N과 합을 구해야 하는 횟수 M이 주어진다. 둘째 줄에는 N개의 수가 주어진다. 수는 1,000보다 작거나 같은 자연수이다. 셋째 줄부터 M개의 줄에는 합을 구해야 하는 구간 i와 j www.acmicpc.net ❔Thinking 주어진 N개의 숫자들 중, i번째에서 j번째 까지의 합을 구해 반환한다. 💻Solution import sys N, M = map(int, sys.stdin.readline().split()) numbers = list(map(int, sys.stdin.readline().split())) numbers_sum = [0] tmp_sum = 0 for i in numbers: tmp_sum += i..