반응형
풀이
- 우선 받은 값을 정렬한 다음 누적 합을 구하면 되는 문제가 됨
- 그래서 두 가지 방법을 생각
- 첫째. DP를 활용하여 이전 값을 더 한 값을 해당 배열에 넣고 최종적으로 합산하기.
- 둘째. 누적 합은 결국 계속해서 다음 값에 해당 값을 남은 수 만큼 더하기 때문에 해당 로직을 생각해서 풀기
첫 번째 방식
import sys
input = sys.stdin.readline
n = int(input())
result = 0
li = sorted(map(int,input().rstrip('\n').split()))
for i in range(1,n): li[i] += li[i-1]
print(sum(li))
두 번째 방식
import sys
input = sys.stdin.readline
n = int(input())
result = 0
for i in sorted(map(int,input().rstrip('\n').split())):
result += n*i
n -= 1
print(result)
'알고리즘' 카테고리의 다른 글
[백준, 파이썬, 1026번] 보물 (0) | 2023.08.29 |
---|---|
[백준, 파이썬, 1931번] 회의실 배정 (0) | 2023.08.28 |
[백준, 파이썬 , 10817번] 세 수 (0) | 2023.08.28 |
[백준, 2468번] 안전 영역 (2) | 2023.08.23 |
[백준, 10026번] 적록색약 (0) | 2023.08.23 |