https://www.acmicpc.net/problem/13900
13900번: 순서쌍의 곱의 합
첫 번째 줄에는 입력 받을 정수의 개수 N(2 ≤ N ≤ 100,000) 두 번째 줄에는 N 개의 정수가 주어진다. 이때 입력 받는 정수들의 범위는 0이상 10,000 이하이다.
www.acmicpc.net
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 |