배열 요소의 부분 합 배열 생성하기
배열의 여러 요소들의 합을 저장하는 새로운 배열을 만들고 싶을 때, 부분 합 배열을 사용할 수 있습니다. 부분 합 배열은 원본 배열의 각 요소까지의 합을 저장하는 배열입니다.
알고리즘 설명
부분 합 배열을 생성하는 알고리즘은 간단합니다. 먼저, 빈 배열을 생성한 후, 원본 배열의 첫 번째 요소를 부분 합 배열의 첫 번째 요소로 저장합니다. 그런 다음, 원본 배열의 두 번째 요소부터 마지막 요소까지 반복하면서 이전 부분 합 배열의 요소와 현재 원본 배열의 요소를 더해서 부분 합 배열에 추가합니다. 이렇게 하면 부분 합 배열이 생성됩니다.
예시 코드
def partial_sum_array(arr):
n = len(arr)
partial_sum = [0] * n
partial_sum[0] = arr[0]
for i in range(1, n):
partial_sum[i] = partial_sum[i-1] + arr[i]
return partial_sum
사용 예시
다음은 사용 예시입니다.
arr = [1, 2, 3, 4, 5]
partial_sum = partial_sum_array(arr)
print(partial_sum) # [1, 3, 6, 10, 15]
위의 예시에서 원본 배열 [1, 2, 3, 4, 5]
의 부분 합 배열은 [1, 3, 6, 10, 15]
입니다.
결론
부분 합 배열은 배열의 요소들의 합을 효율적으로 계산하고 저장하기 위한 유용한 자료구조입니다. 알고리즘을 사용하여 부분 합 배열을 만들 수 있으며, 이를 활용하여 다양한 문제를 해결할 수 있습니다.
참고 자료
-
[부분 합 나무위키](https://namu.wiki/w/%EB%B6%80%EB%B6%84%ED%95%A9) -
[Prefix Sum and Partial Sum Arrays GeeksforGeeks](https://www.geeksforgeeks.org/prefix-sum-array-implementation-applications-competitive-programming/)