알고리즘
시간 복잡도 줄이기 : 삽입 위치 탐색 시 이진 탐색 등의 탐색 알고리즘 사용
삽입 정렬 시간복잡도 : O(n^2)
import sys
N = int(sys.stdin.readline())
time = list(map(int, sys.stdin.readline().split()))
time.sort()
#[1, 2, 3, 4, 5]
result = 0
for i in range(N):
result += (N-i)*time[i]
print(result)
import sys
N = int(sys.stdin.readline())
A = list(map(int, sys.stdin.readline().split()))
S = [0]*N
for i in range(1, N):
insert_point = i
insert_value = A[i]
for j in range(i-1, -1, -1):
if A[j] < A[i]:
insert_point = j+1
break
if j == 0:
insert_point = 0
for j in range(i, insert_point, -1):
A[j] = A[j-1]
A[insert_point] = insert_value
S[0] = A[0]
for i in range(1, N):
S[i] = S[i-1]+A[i]
sum = 0
for i in range(0, N):
sum += S[i]
print(sum)