문제풀이/누적합

[Python/파이썬] 백준 14929번 귀찮아 (SIB)

딜레이레이 2023. 3. 22. 22:14
 

14929번: 귀찮아 (SIB)

n과 xi가 주어짇나. n은 10만 이하ㅇ고, xi는 젗ㄹ댓값이 100이하인 정수디이다.

www.acmicpc.net

 

문제



입력

n과 $x_i$가 주어짇나. n은 10만 이하ㅇ고, $x_i$는 젗ㄹ댓값이 100이하인 정수디이다.


출력

위에서 구하란 걸 구하면 된ㄷ.


코드

n = int(input())
arr = list(map(int, input().split()))
res = 0
accumulate = [arr[0]]
for i in range(1, n):
    accumulate.append(accumulate[i-1] + arr[i])
for j in range(n):
    res += arr[j] * (accumulate[n-1] - accumulate[j])
print(res)

 

위의 식은 다음과 같이 나타낼 수 있다.

 

그러므로 누적합을 구해서 위의 코드와 같이 구할 수 있다.