반응형
문제: https://www.acmicpc.net/problem/2875
풀이:
인턴쉽에 참여하는 인원 K명이 여학생, 남학생에서 빠지는 모든 경우의 수를 구해주면 된다.
makeTeam함수에서는 만들 수 있는 팀의 수를 계산하고 max에는 팀의 수 중 가장 큰 값을 저장해준다.
정답:
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class Main {
static int max;
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.parseInt(st.nextToken());
int M = Integer.parseInt(st.nextToken());
int K = Integer.parseInt(st.nextToken());
max = 0;
for (int i = K; i >= 0; i--) {
makeTeam(N - i, M - (K - i));
}
System.out.println(max);
}
public static void makeTeam(int n, int m) {
int team = 0;
for (; n >= 2 && m >= 1;) {
n = n - 2;
m = m - 1;
team++;
}
max = Math.max(max, team);
}
}
반응형
'Java > 코딩 테스트' 카테고리의 다른 글
그리디: 백준 10610 자바(Java) 30 (0) | 2021.10.26 |
---|---|
다이나믹 프로그래밍(DP) : 백준 9095 자바(Java) 1, 2, 3 더하기 (0) | 2021.10.18 |
브루트 포스: 백준 1476 자바(Java) 날짜 계산 (0) | 2021.10.17 |
수학: 백준 6588 자바(Java) 골드바흐의 추측 (0) | 2021.10.13 |
수학: 백준 1978 자바(Java) 소수 찾기 (0) | 2021.10.13 |