백준 20044 c++

magicdrill·2024년 7월 11일
0

백준 문제풀이

목록 보기
390/654

백준 20044 c++

기본적인 정렬 문제이다. 처음 입력받을 때 전체 요소개수가 아닌 팀 개수를 입력하는걸 주의하고, 계산할때도 정렬된 결과의 처음과 끝을 계산하는 방식으로 순회를 반으로 줄인다.
처음과 끝 계산이니 벡터로 반복횟수를 반으로 제한하는 방법대신 정렬결과를 deque로 저장해서 deque가 빌때까지 반복하는 것도 될거 같다.

#include <iostream>
#include <vector>
#include <algorithm>

using namespace std;

void input_skill(vector<int>& skill)
{
	int N, i, temp;

	cin >> N;
	for (i = 0; i < N * 2; i++)
	{
		cin >> temp;
		skill.push_back(temp);
	}
	sort(skill.begin(), skill.end());
	/*for (int i : skill)
	{
		cout << i << " ";
	}
	cout << "\n";*/

	return;
}

void find_answer(vector<int>& skill)
{
	int i;
	int min = 0;
	int temp;

	for (i = 0; i < skill.size() / 2; i++)
	{
		temp = skill[i] + skill[skill.size() - i - 1];
		if (min == 0 || min > temp)
		{
			min = temp;
		}
		else
		{
			;
		}
	}
	cout << min << "\n";

	return;
}

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

	vector<int> skill;

	input_skill(skill);
	find_answer(skill);

	return 0;
}

0개의 댓글