[백준] 11399 ATM

iamjinseo·2022년 7월 13일
0

문제풀이-Python

목록 보기
26/134

문제

입출력 예시


해설

문제를 잘 읽어보면...

줄을 [2, 5, 1, 4, 3] 순서로 줄을 서면, 2번 사람은 1분만에, 5번 사람은 1+2 = 3분, 1번 사람은 1+2+3 = 6분, 4번 사람은 1+2+3+3 = 9분, 3번 사람은 1+2+3+3+4 = 13분이 걸리게 된다. 각 사람이 돈을 인출하는데 필요한 시간의 합은 1+3+6+9+13 = 32분이다. 이 방법보다 더 필요한 시간의 합을 최소로 만들 수는 없다.

2, 5, 1, 4, 3 순서로 섰다는 것은 인출 시간이 짧은 순서대로 섰다는 것이다.
그렇다면...

코드

# 백준 / 11399 / ATM / 그리디 / 실버4
# 검증결과 : 인출 시간이 짧은 사람부터 배치

import sys
N = int(sys.stdin.readline())

# 인출 시간
times = list(map(int , sys.stdin.readline().split()))

# 오름차순 정렬 후 시간 계산
times.sort()
for i in range(1, N):
    # 이전 사람의 걸리는 시간과 내가 걸리는 시간 더하기
    times[i] = times[i]+times[i-1]

print(sum(times)) # 각 사람마다 걸리는 시간의 합
profile
일단 뭐라도 해보는 중

0개의 댓글