[백준/BOJ] 백준 2875번 : 대회 or 인턴

2020. 6. 10. 04:20알고리즘 문제풀이

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

 

2875번: 대회 or 인턴

문제 백준대학교에서는 대회에 나갈 때 2명의 여학생과 1명의 남학생이 팀을 결성해서 나가는 것이 원칙이다. (왜인지는 총장님께 여쭈어보는 것이 좋겠다.) 백준대학교는 뛰어난 인재들이 많아

www.acmicpc.net

인턴에 참여해야 될 학생의 수가 k명일 때, 각 단계마다 어떤 학생이 인턴에 참여해야 할지를 판단해 1명씩 결정해 k명 모두 결정했을 때 인턴을 가고 남은 학생들로 대회에 참여할 팀을 구성한다.

 

코드

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

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

	int n, m, k;
	int result;

	cin >> n >> m >> k;

	//인턴에 참여할 k명이 모두 정해질때 까지 반복
	while (k != 0)
	{
		//남학생수의 2배보다 여학생의 수가 많은경우
		if (n > m * 2)
		{
			//여학생이 인턴에 참여한다
			n--;
			k--;
		}
		//그렇지 않은 경우 남학생이 참여한다
		else
		{
			m--;
			k--;
		}
	}
	//팀은 여학생2명 남학생 1명으로 구성되므로
	//남은 인원중 (여학생의 수/2) 와 (남학생의 수) 중 작은값이 만들수 있는 최대 팀의 수이다.
	result = min(n / 2, m);

	cout << result;
}