#include<iostream>
#include<algorithm>
using namespace std;
int main(){
int N,M,K;
cin >> N >> M >> K;
int team = min(N/2, M); // 최대 팀 수
int result = min(team, (N+M-K)/3); // 대회 보낼 인원 뺐을 때
printf("%d\n", result);
return 0;
}
그리디 알고리즘 사용.
일단, 대회에 보내야 하는 인원 상관없이 최대로 만들 수 있는 팀 수를 구하기 위해 여학생 2명, 남학생 1명이므로, min(N/2, M)을 구한다.
이후, 인턴십 보내야 하는 인원 K명을 빼고도 3명으로 팀을 만들었을 때 가능한 팀수를 구하고, 이를 이전에 구한 대회에 보내야 하는 인원 상관없이 최대로 만들 수 있는 팀 수와 비교해서 min을 출력한다.
[BOJ] 7576: 토마토 (C++) (1) | 2024.03.05 |
---|---|
[Softeer] [HSAT 7회 정기 코딩 인증평가 기출] 순서대로 방문하기 (C++) (0) | 2024.02.25 |
[Softeer] 자동차 테스트 (C++) (0) | 2024.02.16 |
[Softeer] 성적평균 (C++) (0) | 2024.02.15 |
[백준(BOJ)] 2178번: 미로 탐색 (C++) (0) | 2023.09.08 |