알고리즘/백준
BOJ) 대회 or 인턴
Zin0_0
2020. 7. 18. 22:01
반응형
대회 or 인턴
2875번: 대회 or 인턴
문제 백준대학교에서는 대회에 나갈 때 2명의 여학생과 1명의 남학생이 팀을 결성해서 나가는 것이 원칙이다. (왜인지는 총장님께 여쭈어보는 것이 좋겠다.) 백준대학교는 뛰어난 인재들이 많아
www.acmicpc.net
풀이
1. 대회에 나갈 때 2명의 여학생과 1명의 남학생이 팀을 결성해서 나가는 것이 원칙
2. 대회에 참여하려는 학생들 중 K명은 반드시 인턴쉽 프로그램에 참여해야 한다. 인턴쉽에 참여하는 학생은 대회에 참여하지 못한다.
위의 두 조건에 따라, 여학생과 남학생, 인턴에 참여하는 학생의 수가 순서대로 주어질 때, 인턴쉽에 참가할 수 있는 최대 팀의 수를 구하는 문제다.
여학생 2명과 남학생 한명을 짝지어야 하기 때문에, 반복문을 통해 인턴십에 참여할 학생을 여학생과 남학생 중 어디서 골라야하는지 결정해줬다.
입력받은 여학생의 수의 절반이 대회에 나갈 수 있기 때문에, 여학생 / 2 와 남학생 수를 비교하면서 while을 종료했다.
이후, 여학생 / 2 와 남학생의 숫자 둘 중 더 작은 숫자를 출력해줬다.
-> 여학생 2명과 남학생 1명이 한 팀이기 때문에
코드
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.readLine());
br.close();
int female = Integer.parseInt(st.nextToken());
int male = Integer.parseInt(st.nextToken());
int intern = Integer.parseInt(st.nextToken());
solution(female, male, intern);
}
private static void solution(int female, int male, int intern) {
final int DIV = 2;
while(intern !=0) {
if(female/DIV < male) { male--; }
else { female--; }
intern--;
}
System.out.println(Math.min(female/DIV, male));
}
}
반응형