[Python] 백준 알고리즘 온라인 저지 11399 ATM
https://www.acmicpc.net/problem/11399
알고리즘 분류
- 그리디 알고리즘
- 정렬
문제에서는 시간이 최소로 드는 방법을 요구하고 있다. 방법은 하나로 시간이 적게 드는 사람 순서대로 배치하는 것이다.
소스코드
import sys
input = sys.stdin.readline
n = int(input())
minutes = sorted(list(map(int, input().split())))
result = []
result.append(minutes[0])
for i in range(1, n):
result.append(minutes[i] + result[i-1])
print(sum(result))
풀이
리스트 minutes를 받아서 오름차순으로 정렬해준다. 문제에서 말한대로 섞여있다면 최솟값이 아닐 수 있지만 시간이 적게 걸리는 순서대로 배치하여 계산하면 최솟값을 구할 수 있다.
전에 뽑은 사람이 돈을 다 뽑을때까지 걸린 시간과 자신이 소요하는 시간을 더해 리스트 result에 추가하고 result의 합을 출력하면 된다.
풀이 결과
'알고리즘' 카테고리의 다른 글
백준 14002번 가장 긴 증가하는 부분 수열 4 파이썬 풀이 (0) | 2022.03.29 |
---|---|
백준 1173번 운동 파이썬 풀이 (0) | 2022.03.28 |
백준 2193번 이친수 파이썬 풀이 (0) | 2022.03.24 |
백준 10844번 쉬운 계단 수 파이썬 풀이 (0) | 2022.03.23 |
백준 1931번 회의실 배정 파이썬 풀이 (0) | 2022.03.21 |