Recent Posts
Recent Comments
Link
- Today
- Yesterday
- Total
메이쁘
(JAVA) 백준 2875번 : 대회 or 인턴 본문
https://www.acmicpc.net/problem/2875
2875번: 대회 or 인턴
문제 백준대학교에서는 대회에 나갈 때 2명의 여학생과 1명의 남학생이 팀을 결성해서 나가는 것이 원칙이다. (왜인지는 총장님께 여쭈어보는 것이 좋겠다.) 백준대학교는 뛰어난 인재들이 많아 올해에도 N명의 여학생과 M명의 남학생이 팀원을 찾고 있다. 대회에 참여하려는 학생들 중 K명은 반드시 인턴쉽 프로그램에 참여해야 한다. 인턴쉽에 참여하는 학생은 대회에 참여하지 못한다. 백준대학교에서는 뛰어난 인재들이 많기 때문에, 많은 팀을 만드는 것이 최선이다. 여
www.acmicpc.net
직관적으로 보는 문제.
쉽다.
여러 방식은 있겠지만 내가 사용한 방식은
k = 3이라고 하면
(여학생 인턴 수, 남학생 인턴 수) = (3, 0), (2, 1), (1, 2), (0, 3) 의 경우가 있다.
이에 맞게 학생 수를 뺀 다음
여학생 남은 수 / 2 와 남학생 수 를 비교해서
더 작은 값을 최대로 하는 수를 찾아냈다.
끄ㅡ읏
감사합니다.
소스코드
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
// 대회 or 인턴
// 그리디 알고리즘
public class p2875 {
public static void main(String args[]) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.readLine());
int n = Integer.valueOf(st.nextToken());
int m = Integer.valueOf(st.nextToken());
int k = Integer.valueOf(st.nextToken());
int max = 0;
// i : 남학생에서 인턴 보낼 수
for(int i = 0; i <= k; i++) {
int j = k - i; // 여학생에서 인턴보낼 수
int nowN = n - j;
int nowM = m - i;
if(nowN < 0 || nowM < 0) {
continue;
}
if(nowN / 2 >= nowM) {
max = Math.max(max, nowM);
}
else {
max = Math.max(max, nowN / 2);
}
}
System.out.println(max);
}
}
'Algorithm > Baekjoon' 카테고리의 다른 글
(JAVA) 백준 1449번 : 수리공 항승 (0) | 2020.04.04 |
---|---|
(JAVA) 백준 1339번 : 단어 수학 (0) | 2020.04.04 |
(JAVA) 백준 2589번 : 보물섬 (0) | 2020.04.04 |
(JAVA) 백준 11057번 : 오르막 수 (0) | 2020.04.03 |
(JAVA) 백준 2960번 : 에라토스체네스의 체 (0) | 2020.04.02 |
Comments