1
2
3
4
5
6
|
n=int(input())
nums=list(map(int,input().split()))
ans=0
for i in range(n-1):
ans+=nums[i]*sum(nums[i+1:])
print(ans)
|
cs |
1
2
3
4
5
6
7
8
9
|
import sys
n=int(input())
nums=list(map(int,sys.stdin.readline().split()))
sumNums=sum(nums)
ans=0
for i in nums:
sumNums-=i
ans+=i*sumNums
print(ans)
|
cs |
처음엔 수학적으로 그 i번째 숫자 * (i+1번째부터 마지막항까지의 합) 구하면 O(N)으로 구할수있겠다
싶었는데 시간초과 뜨더라구요
그래서 아 sum하는데 시간이 오래걸리는 케이스가 있구나 싶어서
sum을 먼저 구해놓고 빼는 방식으로 구현함
반응형
'python-algorithm' 카테고리의 다른 글
백준 2870 수학숙제 (0) | 2021.12.28 |
---|---|
백준 1822 차집합 (0) | 2021.12.27 |
백준 11508 2+1 세일 (0) | 2021.12.27 |
백준 13699 점화식 (0) | 2021.12.27 |
백준 2485 가로수 (0) | 2021.12.27 |
댓글