전공/백준
12845
yha97
2022. 12. 8. 22:24
날짜 : 2022. 12. 08
사용 언어 : python
문제
코드
import sys
n = int(sys.stdin.readline())
card = list(map(int, sys.stdin.readline().split())) # 카드 입력
card.sort(reverse=True)
res = 0
m = card[0]
for i in range(1, n):
res += (m + card[i])
print(res)
풀이
- 카드를 입력받은 후 내림차순으로 정렬해 최댓값을 구한다.
- 조합했을 때 최대가 되는 경우는 최댓값을 픽스한 후 나머지를 연속으로 더하는 것이기 때문에
(최댓값 + 나머지) 를 반복하여 돌리면 값이 도출된다.
알게된 점
-
참고 사이트
-