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
'SW개발 > 코딩테스트' 카테고리의 다른 글
[백준]10828번 스택 - 스택 (0) | 2021.01.02 |
---|---|
[백준]1541번 잃어버린 괄호 - 그리디 (0) | 2021.01.01 |
[백준]1931번 회의실 배정 - 그리디 (0) | 2020.12.30 |
[백준]11047번 동전 0 - 그리디 (1) | 2020.12.27 |
[백준]10814번 나이순 정렬 - 정렬 (0) | 2020.12.06 |