[백준/BOJ] 백준 20044번 : Project Teams

2020. 11. 6. 20:19알고리즘 문제풀이

www.acmicpc.net/problem/20044

 

20044번: Project Teams

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

www.acmicpc.net

학생들의 코딩 역량을 오름차순으로 정렬하고, 정렬했을 때 왼쪽 끝 학생, 오른쪽 끝 학생부터 점점 가운데로 가면서 팀을 만들어간다.

 

코드

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

int n;
int wi;
vector<int> w;

int main()
{
	cin.tie(NULL);
	ios_base::sync_with_stdio(false);

	int result = 987654321;

	cin >> n;

	for (int i = 0; i < 2 * n; i++)
	{
		cin >> wi;
		w.push_back(wi);
	}

	//오름차순으로 정렬
	sort(w.begin(), w.end());

	for (int i = 0; i < n; i++)
	{
		//오름차순으로 정렬했을때 왼쪽끝 학생, 오른쪽 끝 학생부터 점점 가운데로 가면서 팀원을 만들어간다
		result = min(result, (w[i] + w[(2 * n - 1) - i]));
	}

	cout << result;

	return 0;
}