zz12345의 코딩 공부

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

 

2875번: 대회 or 인턴

첫째 줄에 N, M, K가 순서대로 주어진다. (0 ≤ M ≤ 100, 0 ≤ N ≤ 100, 0 ≤ K ≤ M+N),

www.acmicpc.net

 

코드

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
using namespace std;
int main() {
    int n,m,k;
    int res=0;
    cin>>n>>m>>k;
    for(int i=0;i<k;i++)
    {
        if(n>=m*2)n--;
        else m--;
    }
    while(n>=2 && m>=1)
    {
        n-=2;
        m--;
        res++;
    }
    cout<<res;
    
    return 0;
}
cs

 

풀이

 n명의 여학생과 m명의 남학생이 있을 때 인턴쉽에 참여하는 k명의 학생을 제외하고 여학생 2명 남학생 1명이 팀을 이루어서 나갈 수 있는 최대의 팀의 수를 구하는 문제이다. k명을 제외하여야 하므로 7~11행에서 k번 반복되는 반복문으로 학생들을 제외하였다. 최대한 팀을 많이 만들기 위해서 남학생의 수의 2배보다 여학생의 수가 크거나 같으면 여학생의 수를 줄여줬다. 그게 아니라면 남학생의 수를 줄여줬다. k명의 학생을 다 제외하였다면 여학생의 수에서 2명, 남학생의 수에서 1명씩 줄여가면서 팀이 몇 개 나올 수 있는지 계산한다.

공유하기

facebook twitter kakaoTalk kakaostory naver band