반응형
문제
백준대학교에서는 대회에 나갈 때 2명의 여학생과 1명의 남학생이 팀을 결성해서 나가는 것이 원칙이다. (왜인지는 총장님께 여쭈어보는 것이 좋겠다.)
백준대학교는 뛰어난 인재들이 많아 올해에도 N명의 여학생과 M명의 남학생이 팀원을 찾고 있다.
그런데 올해에는 대회에 참여하려는 학생들 중 K명을 반드시 인턴쉽 프로그램에 참여하라는 학교의 방침이 생기게 되었다.
백준대학교에서는 뛰어난 인재들이 많기 때문에, 많은 팀을 만드는 것이 최선이다.
여러분은 N명의 여학생과 M명의 남학생, K명의 인턴쉽에 참여해야하는 인원이 주어질 때 만들 수 있는 최대의 팀 수를 구하면 된다.
출처:https://www.acmicpc.net/problem/2875
풀이 과정:
- 최대값을 찾는 것이다
- 먼저 여학생을 2로 나눈 값과 남학생 수를 비교하여 적은 수가 만들 수 있는 최대 팀원 수 이다.
- 그다음 K명을 채울때까지 반복문을 돌려서 남은 학생들 수를 K에서 빼고 남은 학생이 없으면 팀을 하나 줄인다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 | #include<iostream> using namespace std; int main() { int N; int M; int K; cin >> N >> M >> K; int cnt; int cntN = N / 2; if (cntN < M) { cnt = cntN; } else { cnt = M; } while (K>0) { int cntN = N / 2; if (cntN>M) { N -= 2; K -= 2; continue; } else if (cntN<M) { M -= 1; K -= 1; continue; } else { N -= 2; M -= 1; K -= 3; cnt--; } } cout << cnt; return 0; } | cs |
반응형
'알고리즘' 카테고리의 다른 글
<백준> 1931번 회의실 배정 (0) | 2017.12.26 |
---|---|
<백준> 2839번 설탕 배달 (0) | 2017.12.25 |
<백준> 11004번 K번쨰 수 (0) | 2017.12.22 |
<백준> 11047번 동전 0 (0) | 2017.12.21 |
<백준>11399번 ATM (0) | 2017.12.20 |