728x90
📌문제 출처
백준 단계별 문제풀이 - 그리디 알고리즘
https://www.acmicpc.net/problem/11399
❓ 문제
❗ 풀이
- 정렬 후 누적합
📗 풀이 코드
import sys
input = sys.stdin.readline
n = int(input())
# 빨리 인출하는 사람이 먼저 뽑고 나가야 뒤에서 덜 기다림
times = sorted(list(map(int,input().split()))) # 시간 순으로 정렬
waiting = [] # 재정렬한 순서대로 뽑았을 때 순서별 대기시간
tmp_time = 0 # 현재 사람의 대기시간
# 누적합 구하기
for time in times :
tmp_time += time
waiting.append(tmp_time)
print(sum(waiting))
📗 코드 해설
- 인출 시간이 짧은 사람이 먼저 뽑아야 누적되는 시간의 합이 적어짐
- 인출 시간 순서대로 정렬 후 누적합
'파이썬 문제풀이' 카테고리의 다른 글
[백준 파이썬] 13305 주유소 (0) | 2023.08.03 |
---|---|
[백준 파이썬] 1541 잃어버린 괄호 (0) | 2023.08.01 |
[백준 파이썬] 1931 회의실 배정 (0) | 2023.07.30 |
[백준 파이썬] 25682 체스판 다시 칠하기 2 (0) | 2023.07.29 |
[백준 파이썬] 11047 동전 0 (0) | 2023.07.29 |