[두잇 파이썬 풀이_삽입정렬, 합배열 이용]
N = int(input())
A = list(map(int, input().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(1, insert_point, -1):
A[j] = A[j-1] # 한 칸씩 shift 해주는 연산
A[insert_point] = insert_value
# 합배열
S[0] = A[0]
for i in range(1,N): # 0번은 이미 넣어져있으니까 1부터
S[i] = S[i-1] + A[i]
sum = 0 # 정답값
for i in range(1,N):
sum += S[i]
print(sum)
- 근데 백준에서 제출하면 틀렸다고 함 ?? ...... . . .. 예시 입출력은 그대로 나옴
[정답 풀이]
N = int(input())
A = list(map(int, input().split())) # 기다리는 사람들 리스트 형태로 입력
A.sort() # 오름차순으로 정렬
ans = 0
for x in range(1,N+1):
ans += sum(A[0:x]) # 리스트의 0번째 수부터 x번째 수까지를 더해줌
print(ans)
☆ sort() : 오름차순 정렬