Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 자료구조
- 코테 문제
- sort
- 삼성역량테스트
- 임베디드 딥러닝
- dfs문제
- 삼성코테
- 포스코 AI교육
- 알고리즘
- 포스코 ai 교육
- tflite
- 삼성역테
- 다이나믹프로그래밍
- TensorFlow Lite
- dfs
- 딥러닝
- DP문제
- 삼성코딩테스트
- BFS
- 포스코 교육
- bfs문제
- MCU 딥러닝
- 그리디
- 코딩테스트
- 초소형머신러닝
- 영상처리
- DP
- 컴퓨팅사고
- tinyml
- 코테
Archives
- Today
- Total
코딩뚠뚠
[백준문제풀이] 2875 대회 or 인턴 본문
반응형
풀이일시 : 2020-10-16
문제 :
백준대학교에서는 대회에 나갈 때 2명의 여학생과 1명의 남학생이 팀을 결성해서 나가는 것이 원칙이다. (왜인지는 총장님께 여쭈어보는 것이 좋겠다.)
백준대학교는 뛰어난 인재들이 많아 올해에도 N명의 여학생과 M명의 남학생이 팀원을 찾고 있다. 대회에 참여하려는 학생들 중 K명은 반드시 인턴쉽 프로그램에 참여해야 한다. 인턴쉽에 참여하는 학생은 대회에 참여하지 못한다.
백준대학교에서는 뛰어난 인재들이 많기 때문에, 많은 팀을 만드는 것이 최선이다.
여러분은 여학생의 수 N, 남학생의 수 M, 인턴쉽에 참여해야하는 인원 K가 주어질 때 만들 수 있는 최대의 팀 수를 구하면 된다.
입력 :
첫째 줄에 N, M, K가 순서대로 주어진다. (0 ≤ M ≤ 100, 0 ≤ N ≤ 100, 0 ≤ K ≤ M+N),
ex)
6 3 2
출력 :
만들 수 있는 팀의 최대 개수을 출력하면 된다.
ex)
2
풀이 :
N과 M을 팀으로 소진시켜주고 (N-2 M-1 team+1)
인턴십에 참여해야하는 K를 어떠한 방법으로 소진시키는 지에 따라 조건을 나누어 실행시켜준다.
#include <iostream>
#include <cmath>
using namespace std;
int main() {
int N, M, K;
cin >> N >> M >> K;
int team=0;
float result;
do{
N= N - 2;
M= M - 1;
team++;
} while (N > 1 && M > 0);
//K를 소진시킨다. (남녀비율은 상관없는 K)
//K가 적고 남은 M이나 N들이 많다면?
K = K - (M + N); // M+N = 팀을 다 꾸리고 남은인원들
//남은 M N으로 소진을 시키고도 K가 남는다면? 팀을 해체시키고 인원을 갉아먹기
if (K > 0) {
result = float(K) / 3.0;
team = team - ceil(result); // 11명이면 4팀이 망가짐 올림연산
}
cout << team << endl;
}
추가자료 :
반응형
'알고리즘 문제풀이 > 백준문제풀이' 카테고리의 다른 글
[백준문제풀이] 1744 수 묶기 (0) | 2021.01.02 |
---|---|
[백준문제풀이] 1931 회의실배정 (0) | 2021.01.01 |
[백준문제풀이] 10819 차이를 최대로 (0) | 2021.01.01 |
[백준문제풀이] 10971 외판원 순회2 (0) | 2021.01.01 |
[백준문제풀이] 1107 리모컨 (0) | 2021.01.01 |