[백준] 20044번 Project Teams C++ 문제풀이

https://www.acmicpc.net/problem/20044

 

20044번: Project Teams

입력은 표준입력을 사용한다. 입력의 첫 번째 행에는 팀 수를 나타내는 양의 정수 n(1 ≤ n ≤ 5,000)이 주어진다. 그 다음 행에 학생 si 의 코딩 역량 w(si)를 나타내는 2n개의 양의 정수가 공백으로

www.acmicpc.net

문제 풀이

코딩 역량이 고르게 분포되기 위해서 정렬을 한 후

(코딩 역량이 가장 높은 학생, 코딩 역량이 가장 낮은 학생) , (코딩 역량이 2번째로 높은 학생, 코딩 역량이 2번째로 낮은 학생) ... 이런식으로 코드를 작성했다

소스 코드

#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;

vector<int> player;

int main() {
	int n;
	cin >> n;
	for (int i = 0; i < 2 * n; i++) {
		int a;
		cin >> a;
		player.push_back(a);
	}

	sort(player.begin(), player.end());

	int max_idx = 2 * n - 1;
	int min_num = 999999999;
	for (int i = n - 1; i >= 0; i--) {
		int j = max_idx - i;
		min_num = min(min_num, player[i] + player[j]);
	}
    
	cout << min_num << '\n';
}

.