반응형
문제 설명
입력
n과 xi가 주어짇나. n은 10만 이하ㅇ고, xi는 젗ㄹ댓값이 100이하인 정수디이다.
출력
위에서 구하란 걸 구하면 된ㄷ.
예제 입력, 예제 출력
3 1 -2 3 |
-5 |
코드 및 설명
import sys
n = int(sys.stdin.readline())
n_arr = list(map(int, sys.stdin.readline().split(" ")))
prefix_sum = 0
result = 0
for i in range(n-1, 0, -1):
prefix_sum += n_arr[i]
result += n_arr[i-1] * prefix_sum
print(result)
이 문제는 누적합 문제로 문제 설명에 있는 것은 수열의합, 시그마 공식이다.
이런식으로 result = n_arr[1] * n_arr[2] + n_arr[2] * n_arr[3] + n_arr[3] 값을 구해주면 된다.
맨 마지막은 더 해주기만 하면 되기때문에 마지막 부터 차례로 내려가면서
처음 for문은
prefix_sum += 3 ( n_arr[2] )
result += -2 (n_arr[i-1]) * 3
-6이 나오고
이런식으로 차례로 내려가면서 구하면 값을 구할 수 있다.
반응형
'삽집하는 개발들 > 알고리즘' 카테고리의 다른 글
[82일차][백준][구현, 문자열][9093]단어 뒤집기 (2) | 2023.11.29 |
---|---|
[82일차][백준][구현, 문자열][1032]명령 프롬프트 (2) | 2023.11.29 |
[80일차][백준][누적합, 구현, 브루트포스][2435]기상청 인턴 신현수 (3) | 2023.11.27 |
[80일차][백준][누적합, 투포인트][1806]부분합 (4) | 2023.11.27 |
[79일차][백준][누적합][2851]슈퍼 마리오 (3) | 2023.11.24 |