Algorithm/백준

[백준 스위프트] 11399번 ATM

devKen 2022. 7. 25. 22:05

문제 요약

언뜻 읽었을 때 이해가 되지 않았다. 어차피 마지막 사람이 인출하는것까지 카운트하면 전체 소요되는 시간은 똑같은거 아닌가?

이 문제는 각 사람이 대기한 시간까지 포함하는 문제다. 3, 2, 1의 시간이 걸린다치면 123 순으로 하면 1 + 3+ 6으로 10이 나오지만 321순으로 인출을 하면 3+ 5+ 6으로 14가 나오기 떄문에 최솟값을 구할수 없다.

 

해답

let N = Int(readLine()!)!
var array = readLine()!.split(separator: " ").map({Int(String($0))!})
var sum:Int = 0
var result:Int = 0
array.sort()
for idx in array {
    sum = idx + sum
    result = sum + result
}
print(result)