[문제 링크]

 

2875번: 대회 or 인턴

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

www.acmicpc.net


필자는 인턴을 보내는 기준을 다음과 같이 정했다.

 

여학생이 이룰 수 있는 팀 개수가 남학생이 이룰 수 있는 팀 개수보다 많거나 같다면 남학생이 이룰 수 있는 팀 개수가 최대이기 때문에 여학생을 인턴으로 보내도 최대 팀 개수를 유지할 수 있다.

 

반대로 여학생이 이룰 수 있는 팀 개수가 남학생이 이룰 수 있는 팀 개수보다 적다면 여학생이 이룰 수 있는 팀 개수가 최대이기 때문에 남학생을 인턴으로 보내도 최대 팀 개수를 유지할 수 있다.

 

위 기준을 통해 학생들을 인턴으로 보내고나서 남은 학생들로 이룰 수 있는 팀 개수를 구하면 그 값이 정답이 된다.


#include <iostream>
using namespace std;

int Greedy(int woman, int man, int intern)
{
	while (intern--)
	{
		if (woman / 2 >= man)
			woman--;
		else
			man--;
	}

	return woman / 2 >= man ? man : woman / 2;
}

int main(void)
{
	int N, M, K;
	cin >> N >> M >> K;

	cout << Greedy(N, M, K) << endl;

	return 0;
}

알고리즘 200일 프로젝트 - 111 day

'알고리즘 > BOJ' 카테고리의 다른 글

백준 1946번: 신입 사원  (0) 2020.07.27
백준 1120번: 문자열  (0) 2020.07.27
백준 1541번: 잃어버린 괄호  (0) 2020.07.26
백준 10610번: 30  (0) 2020.07.26
백준 2217번: 로프  (0) 2020.07.26

+ Recent posts