https://www.acmicpc.net/problem/11399
import sys
input = sys.stdin.readline
n = int(input().strip())
m = list(map(int,input().split()))
m = sorted(m)
sums = 0
for i in m:
sums += i * n
n -= 1
print(sums)
문제를 보고 정렬을 해서 가장 작은 수부터 n, n-1,..1 번씩 들어간다는 것을 알아서 sorted로 정렬하고 곱해서 풀었다.
보고 가장 작은거를 계속해서 구해야하기 때문에 heapq를 이용해서도 풀어봤다.
import sys
from heapq import heappop, heappush
input = sys.stdin.readline
n = int(input().strip())
m = list(map(int,input().split()))
heap = []
sums = 0
for i in m:
heappush(heap,i)
for i in range(n):
sums += heappop(heap) * n
n -= 1
print(sums)
heapq는 처음에 리스트로 넣을 수 없어서 for문으로 한번 더 돌려줬다.
'백준 문제 풀이 및 피드백' 카테고리의 다른 글
2023.01.19 연결요소의 개수 백준[파이썬] (0) | 2023.01.19 |
---|---|
2023.01.19 비밀번호 찾기 백준[파이썬] (0) | 2023.01.19 |
2023.01.19 적록색약 백준[파이썬] (0) | 2023.01.19 |
2023.01.18 최소힙 백준[파이썬] (0) | 2023.01.18 |
2023.01.18 토마토 백준[파이썬] (0) | 2023.01.18 |