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 |