본문으로 건너뛰기

코딩 퀴즈 - ATM 문제

코딩 퀴즈 - ATM 문제

이번 코딩 퀴즈는 탐욕 알고리즘을 사용하여 ATM에서 사람들이 돈을 인출하는 데 필요한 최소 시간을 계산하는 함수를 작성합니다.

사람들은 줄을 서서 기다리고 있으며, 각 사람이 돈을 인출하는 데 걸리는 시간이 주어집니다.

목표는 모든 사람들이 돈을 인출하는 데 걸리는 총 시간을 최소화하는 것입니다.

사람들이 줄을 서 있는 순서를 최적화하여, 모든 사람들이 돈을 인출하는 데 걸리는 총 시간을 계산하는 프로그램을 작성합니다.


코드 작성
def solution(times):
# 여기에 코드를 작성하세요
return



제한 사항

  • 줄을 서 있는 사람들의 수는 1명 이상 1,000명 이하입니다.

  • 각 사람이 ATM에서 돈을 인출하는 데 걸리는 시간은 1분 이상 1,000분 이하입니다.




입출력 예시

  • 입력: [3, 1, 4, 3, 2] (사람들이 돈을 인출하는 데 걸리는 시간)

  • 출력: 32 (총 걸리는 시간의 최소값)




입출력 예시 설명

예시에서 각 사람이 돈을 인출하는 데 걸리는 시간은 [3, 1, 4, 3, 2]분입니다. 가장 적은 시간이 걸리는 순서대로 줄을 세운다면 [1, 2, 3, 3, 4]가 됩니다. 이 순서대로 돈을 인출할 경우, 각 사람이 기다려야 하는 시간은 다음과 같습니다:

  1. 첫 번째 사람: 1분

  2. 두 번째 사람: 1(첫 번째 사람) + 2 = 3분

  3. 세 번째 사람: 3(두 번째 사람까지) + 3 = 6분

  4. 네 번째 사람: 6(세 번째 사람까지) + 3 = 9분

  5. 다섯 번째 사람: 9(네 번째 사람까지) + 4 = 13분

따라서 총 걸리는 시간은 1 + 3 + 6 + 9 + 13 = 32분입니다.