https://www.acmicpc.net/problem/13900
n의 범위가 100000이기 때문에 combination으로 풀면 안된다는것을 바로 알았다.
근데 어떻게 풀지를 몰라 한참을 고민하다가 리스트에 있는 값을 변수화 시켜서 구하는 과정을 해봤더니
list = [a,b,c,d]
a(b+c+d) + b(c+d) + cd 이런식으로 규칙이 보이기 시작했다.
구현문제는 항상 어떠한 규칙을 찾아내야 하는데 쉬워보여도 생각이 잘 나지않아 어려운 것 같다.
n = int(input())
data = list(map(int,input().split()))
res = sum(data)
answer = 0
for i in data:
res = res - i
answer = answer + i * res
print(answer)
'Algorithm > Algorithm Problem' 카테고리의 다른 글
백준 2072 오목(구현) (0) | 2022.06.01 |
---|---|
백준 11000 강의실 배정(Heap, 우선순위 큐) (0) | 2022.05.22 |
백준 11571 분수를 소수로(구현) (0) | 2022.05.20 |
백준 7662 이중 우선순위 큐(Heapq) (0) | 2022.05.12 |
백준 16928 뱀과 사다리 게임(BFS) (0) | 2022.05.10 |