728x90
반응형
https://www.acmicpc.net/problem/11399
풀이
앞쪽의 인출 시간이 짧아야 대기시간도 덩달아 짧아진다.
즉 arr을 오름차순으로 정렬하고,
대기시간은 앞선 인출시간의 누적 합이고
시간의 총합은 i번째 사람의 대기시간 + 인출시간이므로 누적 합을 이용하면 된다.
(이때 n번 사람에 몇 분의 인출이 필요한지 딕셔너리 d로 정의를 해두었는데, 복기해보니 큰 쓸모는 없다.)
N = int(input())
d = {}
arr = list(map(int, input().split()))
for i in range(N):
d[i+1] = arr[i]
d_sorted = dict(sorted(d.items(), key=lambda x:x[1]))
total = 0
wait = 0
for t in d_sorted.values():
wait = wait + t
total += wait
print(total)
728x90
반응형
'코딩테스트 > BAEKJOON' 카테고리의 다른 글
[백준/Python] 17219. 비밀번호 찾기 (0) | 2024.11.18 |
---|---|
[백준/Python] 11047. 동전 0 (0) | 2024.11.18 |
[백준/Python] 1764. 듣보잡 (0) | 2024.11.18 |
[백준/Python] 9012. 괄호 (1) | 2024.11.05 |
[백준/Python] 10773. 제로 (0) | 2024.11.05 |