알고리즘/백준
백준 실버4 11399. ATM (python)
개발하는 호랑이
2024. 3. 2. 15:52
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)