[백준]11399번 ATM - 그리디
SW개발/코딩테스트

[백준]11399번 ATM - 그리디

 

n = int(input())
sum = 0
result = 0
a = list(map(int, input().split()))
a.sort()

for j in range(n):
    sum += a[j]
    result += sum
    
print(result)

 

코드 설명

먼저 각 사람이 돈을 인출하는데 필요한 시간을 a 라는 리스트에 저장한 후 정렬을 해준다. 그 후 n 만큼 반복문을 돌리면서 sum 이라는 변수에 각 사람당 걸리는 시간을 구하고 누적 시간을 구하기 위해 result 변수에 덧셈해준다.

 

Point : 각 상황에서 가장 최소의 시간이 걸리게 하는 것이 그리디 알고리즘이 되므로, sort() 함수를 통하여 정렬을 해준다. 그 후 누적시간을 구해야 하기 때문에 sum -> 각 사람이 걸리는 시간, result -> 각 사람이 기다려야 되는 시간의 변수를 활용한다.

728x90