코드
import sys
input = sys.stdin.readline
N = int(input())
lst = list(map(int, input().split()))
lst.sort()
time = [lst[0]]
for i in range(1, N):
time.append(time[i-1] + lst[i])
print(sum(time))
- 앞에서 계속 DP를 풀었어서 앞에까지 구한 걸 이용해서 더했다.
슬라이싱을 이용
import sys
input = sys.stdin.readline
N = int(input())
lst = list(map(int, input().split()))
lst.sort()
res = 0
for i in range(N+1):
res += sum(lst[:i])
print(res)
- 구글링을 통해서 간단하게 슬라이싱을 이용한 코드도 있어서 작성해보았다.
- 작성하면서 실수한 것! lst[:i]라고 적으면 0~i-1까지를 더하는 거다. 그래서 range(N)이 아니라 range(N-1)라고 한다!!!
결과

- 내가 한 코드가 미리 저장해서 다시 계산을 안 해서 그런지 더 빠르긴 하다
- 역시 코드가 짧다고 더 빠른 건 아님