본문 바로가기
python-algorithm

백준 13900 순서쌍의 곱의 합

by 무적김두칠 2021. 12. 27.

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

댓글