# 호반우의 개수
n = int(input())
# 호반우들의 품질
hos = list(map(int, input().split()))
# 호반우 품질을 오름차순 정렬
hos.sort()
# 짝수인 경우
if n % 2 == 0:
# (n/2+1)번째 호반우
mid = hos[(n//2)]
# 홀수인 경우
else:
# ((n+1)/2)번째 호반우
mid = hos[(n+1)//2 - 1]
# 묶어서 판매할 경우 = 중앙값 * n
# 개별적으로 판매할 경우 = 각 호반우의 품질만큼의 가격
# 최대 이익 = 묶어서 판 금액과 개별적으로 판 금액 중 더 큰 값
print(max(mid * n, sum(hos)))
-> 틀림
노트에서 설명된 예시를 보고
묶음을 품질 리스트 전체인 묶음 하나만 만든다고 잘못 이해함...
통과한 코드
# 호반우의 개수
n = int(input())
# 호반우들의 품질
hos = list(map(int, input().split()))
# 호반우 품질을 오름차순 정렬
hos.sort()
# 가장 작은 값과 가장 큰 값을 하나의 묶음으로 만들어 가장 작은 값을 가장 큰 값으로 바꿔서 더하기
# -> 품질 리스트의 끝 값들만 필요
# 작은 값들을 모두 큰 값들로 바꿔줄 것이기 때문에 큰 값들만 더한 다음 곱하기 2
ans = sum(hos[(n+1)//2:]) * 2
# 개수가 홀수인 경우
if n % 2 == 1:
# 마지막 남은 품질 리스트의 가운데에 위치한 값 더해주기
ans += hos[n//2]
print(ans)
가장 작은 값과 가장 큰 값을 하나의 묶음으로
ex) (2, 8) (4, 9)
=> 8 * 2 + 9 * 2 = 34
-> 작은 값들이 큰 값들로 바뀔 것이기 때문에 오름차순 정렬된 품질 리스트의 끝 값들을 더한 다음 2를 곱해주면 됨