SW
[백준 2875] 대회 or 인턴 본문
0. 제목
- 백준 2875 대회 or 인턴
- BOJ 2875 대회 or 인턴
- C++ 2875 대회 or 인턴
1. 문제
https://www.acmicpc.net/problem/2875
2. 풀이
- 그리디 알고리즘을 사용하였다.
- 2명의 여학생과 1명의 남학생이 팀을 만들어야 하고 K명이 인턴쉽에 참여해야 한다.
- K명이 빠져야 하므로 여학생, 남학생에서 합하여 K명 만큼 모든 경우의 수대로 뺀다.
- 여학생 2명과 남학생 1명이므로 위에서 뺀 값을 각각 2와 1로 나눈다. 두 값중 작은 값이 만들어질 수 있는 팀의 수가 된다.
- 최대의 팀 수를 구해야 하므로 최대값과 만들어진 팀을 비교하면서 최대값을 갱신하고 최종 결과가 답이 된다.
- 다음과 같은 방식으로도 답을 구할 수 있다.
- min(N/2, M, (N+M-K)/3)
3. 코드
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
#include <iostream>
#include <algorithm>
using namespace std;
int main(int argc, const char * argv[]) {
int N, M, K;
int a, b;
int max = 0;
cin >> N >> M >> K;
for(int i = 0; i <= K; i++){
a = (N - i) / 2;
b = M - (K - i);
if(max < min(a, b))
max = min(a, b);
}
cout << max << '\n';
return 0;
}
|
'대학교 > Algorithm' 카테고리의 다른 글
[백준 2579] 계단 오르기 (0) | 2020.02.09 |
---|---|
[백준 10610] 30 (0) | 2020.02.08 |
[백준 2331] 반복수열 (0) | 2020.02.07 |
[백준 11047] 동전 0 (0) | 2020.02.05 |
[백준 10451] 순열 사이클 (0) | 2020.02.02 |
Comments