문제링크 : https://www.acmicpc.net/problem/20117
#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define MAX 987654321
#define pii pair <int, int>
int arr[100001];
int main()
{
ios_base::sync_with_stdio(false);
cin.tie(0);
int N;
cin >> N;
for(int i=0; i<N; i++)
{
cin >> arr[i];
}
sort(arr, arr+N);
int result = 0;
if(N%2) //홀수
{
for(int i= N-1; i>N/2; i--)
{
result += (arr[i] * 2); //큰 값 곱하기 2
}
result += arr[N/2]; //가운데값 더하기
}
else //짝수
{
for(int i= N-1; i>=N/2; i--)
{
result += (arr[i] * 2); //큰 값 곱하기 2
}
}
cout << result;
return 0;
}
먼저 정렬을 한 후, 제일 작은 값과 제일 큰 값 이렇게 쌍을 맞춰주면 된다.
큰 값 쪽을 중앙값으로 하기에 큰 값을 * 2해주면 된다.
홀수인 경우에는 이런식으로 진행하다보면 가운데 값이 하나 남으므로, 마지막에 가운데 값을 더해주면 된다.
'백준 > 실버' 카테고리의 다른 글
[백준 26266번] 비즈네르 암호 해독 (C++) (0) | 2023.05.24 |
---|---|
[백준 3495번] 아스키 도형 (C++) (0) | 2023.05.21 |
[백준 15787번] 기차가 어둠을 헤치고 은하수를 (C++) (0) | 2023.05.17 |
[백준 14231번] 박스 포장 (C++) (0) | 2023.05.15 |
[백준 13335번] 트럭 (C++) (0) | 2023.05.13 |