문제
정답 소스코드 (Python)
n=int(input())
arr=list(map(int,input().split()))
arr.sort()
result=0
time=0
for i in range(n):
time+=arr[i]
result+=time
print(result)
풀이 (Python)
문제는 길지만 실제적으로, 현재 i번째 사람이 인출할 때 i앞까지 모든 사람의 시간을 총합에 더해주어 최소로 나오는 총합을 출력하는 문제이다.
P1 = 3, P2 = 1, P3 = 4, P4 = 3, P5 = 2인 경우 걸리는 시간 순으로 정렬하여 [ P2, P5, P1, P4, P3] 순으로 누적합을 구해주면 되는 것이다.
arr.sort()를 통해 정렬해 준 후
for i in range(n):
time+=arr[i]
result+=time
누적합을 통해 정답을 구하면 되는 문제이다.
'Baekjoon' 카테고리의 다른 글
[백준] 5585번 거스름돈 (파이썬) (0) | 2024.02.07 |
---|---|
[백준] 4796번 캠핑 (파이썬) (1) | 2024.02.07 |
[백준] 11651 좌표 정렬하기2 (파이썬) (0) | 2024.02.06 |
[백준] 2750번 수 정렬하기 (파이썬) (1) | 2024.02.06 |
[백준] 13305번 주유소 (파이썬) (1) | 2024.02.06 |