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)
위의 식은 다음과 같이 나타낼 수 있다.

그러므로 누적합을 구해서 위의 코드와 같이 구할 수 있다.
'문제풀이 > 누적합' 카테고리의 다른 글
[Python/파이썬] 백준 21318번 피아노 체조 (0) | 2023.03.24 |
---|---|
[Python/파이썬] 백준 11660번 구간 합 구하기 5 (0) | 2023.03.24 |
[Python/파이썬] 백준 20438번 출석체크 (0) | 2023.03.23 |
[Python/파이썬] 백준 2167번 2차원 배열의 합 (0) | 2023.03.23 |
[Python/파이썬] 백준 1806번 부분합 (0) | 2022.08.11 |
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)
위의 식은 다음과 같이 나타낼 수 있다.

그러므로 누적합을 구해서 위의 코드와 같이 구할 수 있다.
'문제풀이 > 누적합' 카테고리의 다른 글
[Python/파이썬] 백준 21318번 피아노 체조 (0) | 2023.03.24 |
---|---|
[Python/파이썬] 백준 11660번 구간 합 구하기 5 (0) | 2023.03.24 |
[Python/파이썬] 백준 20438번 출석체크 (0) | 2023.03.23 |
[Python/파이썬] 백준 2167번 2차원 배열의 합 (0) | 2023.03.23 |
[Python/파이썬] 백준 1806번 부분합 (0) | 2022.08.11 |