
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());
int N = Integer.parseInt(st.nextToken()); // 여학생 수
int M = Integer.parseInt(st.nextToken()); // 남학생 수
int K = Integer.parseInt(st.nextToken()); // 인턴쉽에 참여해야 하는 학생 수
// 팀을 구성할 수 있는 최대 수를 계산
int cnt = 0;
// 가능한 최대 팀 수를 구하는 반복문
while (N >= 2 && M >= 1 && N + M >= K + 3) {
N -= 2;
M -= 1;
cnt++;
}
System.out.println(cnt);
}
}
한 번의 반복문으로 O(N)
if 문으로 접근하다 로직이 복잡해져 예외가 발생했다.
그리디 알고리즘이 익숙치 않은 거 같다. 좀 더 많은 문제를 접해보자!