https://www.acmicpc.net/problem/13900
n = int(input())
nlist = list(map(int, input().split()))
sum_nlist = sum(nlist)
hap = 0
for i in nlist:
sum_nlist -= i
hap += sum_nlist * i
print(hap)
문제를 보자마자 이중 for문을 이용해 전체탐색을 하는 브루트포스 문제인 줄 알았다. 결과는 당연히 시간초과가 났고 어떻게 풀어야 할 지 생각을 해보다가 도저히 떠오르는 방법이 없어 검색을 해봤다. 알고보니 순서쌍 곱의 합에는 일정한 규칙이 있었고 그 규칙을 이용해 시간을 훨씬 단축할 수가 있었다.
ex)
2 3 4 5 -> (2*3) + (2*4) + (2*5) -> 2(3+4+5)
3 4 5 -> (3*4) + (3*5) -> 3(4+5)
리스트(배열)를 사용하는 수학 문제는 테스트 케이스의 인덱스와 그 값을 미리 적어둔 뒤에 문제를 파악해봐야겠다.