백준 11399 - ATM

태태·2023년 5월 22일
0

문제

알고리즘 분류)

  • 그리디 알고리즘
  • 정렬

풀이

여러 사람이 있고 1번째 사람부터 N번째 사람까지 총 돈을 인출하는 시간을 짧게하는 문제이다
핵심은,
가장 시간이 짧게 걸리는 사람부터 돈을 인출하면 모두가 기다리는 시간은 적어진다
(앞에 사람이 오래 기다리면 내 시간도 빼앗기는 것은 당연)

오름차순 정렬을 이용하여 구현
1번째 사람 = 1번이 걸리는 시간
2번째 사람 = 1번이 걸리는 시간+2번이 걸리는 시간
...
N번째 사람 = 1번이 걸리는 시간+ ... +N번이 걸리는 시간이므로
변수를 생성해 누적해가며 더해준다


소스코드

python)

N = int(input())

array = list(map(int,input().split()))

array.sort()
num=0
total=0
for i in array:
    num += i
    total += num
    
print(total)
profile
과정에서 재미를 느끼지 않는데 성공하는 일은 거의 없다

0개의 댓글