본문 바로가기
알고리즘/백준

백준 실버4 11399. ATM (python)

by 개발하는 호랑이 2024. 3. 2.

ATM

풀이

문제를 찬찬히 읽으면 금방 해결되는 문제이다.
처음에는 섞든 다 똑같은 것 아닌가 생각했는데 그게 아니라
5 사람이 있으면

1번째 사람이 걸린 시간
2번째 사람이 걸린 시간
3번째 사람이 걸린 시간
4번째 사람이 걸린 시간
5번째 사람이 걸린 시간

의 합이 최소화가 되는 것을 구하는 것이다.

따라서 이것은 오름차순으로 정렬시킨 다음에 슬라이싱을 적용하든 뭘 하든 sum(list [:나+1])들의 합이라고 생각하면 된다.

나는 슬라이싱은 시간이 더 걸릴 것이라 생각했기에 시간을 누적시키는 방법을 사용했다.
따라서 코드는 다음과 같다.

import sys
N = int(sys.stdin.readline().strip())
p_list = list(map(int, sys.stdin.readline().split()))
p_list.sort()
sum_value = 0
s_v = 0
for i in range(N):
    s_v += p_list[i]
    sum_value += s_v
print(sum_value)