728x90
N= int(input())
result = 0
nList = list(map(int, input().split()))
nList = sorted(nList)
i = N
while i > 0 :
result += nList[N - i] * i
i -= 1
print(result)
저번 문제로 된통 당하고 이번 문제는 비교적 쉬운 편이었다.
그리디 알고리즘이 그 안의 구조가 어찌 됐건 내가 구해야되는 정보만 구하면 되는 특성을 지녔는데
이 문제도 그 안의 정렬은 신경쓰지 않고 최소의 값만 구하면 되는 문제였다.
우선 정렬을 하고, 가장 작은 수를 가장 많이 나오게, 가장 큰 수를 가장 적게 나오게 하면 된다.
728x90
'알고리즘 공부(C++)' 카테고리의 다른 글
1966 프린터 큐 (0) | 2022.08.10 |
---|---|
11047 코인 (0) | 2022.08.09 |
10773 제로 (0) | 2022.08.09 |
7568 덩치 (0) | 2022.08.08 |
BOJ 1931 회의실 (0) | 2022.08.05 |