728x90
SMALL
아이디어
n의 입력을 받고 n*2 만큼의 팀원을 둘씩 짝지으면 된다.
그렇다면 오름차순으로 정렬하고 제일 작은 수 + 제일 큰 수
식으로 팀을 맺으면 최소의 평균값이 나올 것이다.
https://www.acmicpc.net/problem/20044
코드
#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;
using ll = long long;
const int INF = 1e8;
int main() {
ios::sync_with_stdio(false);
cin.tie(0); cout.tie(0);
int n,a;
cin >> n;
n *= 2;
vector<int> v;
for (int i = 0; i < n; i++) {
cin >> a;
v.push_back(a);
}
sort(v.begin(), v.end());
int ans = INF;
for (int i = 0; i < n; i++) {
ans = min(ans, v[i] + v[n - i - 1]); // v1 + vn ...
}
cout << ans;
return 0;
}
728x90
LIST
'PS > BOJ' 카테고리의 다른 글
백준 17398 (C++) 통신망 분할 (3) | 2021.10.04 |
---|---|
백준 14938 (C++) 서강그라운드 (0) | 2021.09.30 |
백준 1931 (C++) 회의실 배정 (0) | 2021.09.30 |
백준 11720 (C++) 숫자의 합 (0) | 2021.09.29 |
백준 1158 (C++) 요세푸스 문제 (0) | 2021.09.29 |