백준 20044 (C++) Project Teams
728x90
SMALL

아이디어

n의 입력을 받고 n*2 만큼의 팀원을 둘씩 짝지으면 된다.

그렇다면 오름차순으로 정렬하고 제일 작은 수 + 제일 큰 수

식으로 팀을 맺으면 최소의 평균값이 나올 것이다.

 

 

 

 

 

https://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;
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