본문 바로가기

백준

[BaekJoon/Python3] 11399번 : ATM

 

 

[두잇 파이썬 풀이_삽입정렬, 합배열 이용]

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() : 오름차순 정렬

'백준' 카테고리의 다른 글

[BaekJoon/Python3] 백준 2738번 : 행렬 덧셈  (0) 2025.01.19
우선순위 큐  (0) 2024.08.14
그리디 알고리즘  (0) 2024.08.14
누적 합  (0) 2024.08.12
동적 계획법 1  (0) 2024.08.12