본문 바로가기
백준 풀이

[백준 풀이_Java] 2875 대회 or 인턴

by happyhelen 2021. 10. 28.

 

 

처음 생각

 

간단해 보이는데 의외로 생각을 많이하게 하는 문제였다

 

처음에는 여자, 남자, 인턴십 인원 따로따로 생각했는데

 

결국 몇 팀이 나갈지를 물어보는 거니까 남자가 몇명남고 여자가 몇명 남든 인원수만 맞으면 된다는 생각이 들었다

 

여자 몇명, 남자 몇명이 인턴십 인원을 채울지 계산하지 않고, 결국 3명으로 이루어진 몇 팀이 남는가가 핵심이다

 

자세한건 코드를 보면서 설명하겠다

 

 

 

 

내가 푼 방법

 

import java.util.Scanner;

public class Main {
	public static void main(String[] args) {
    
		Scanner sc = new Scanner(System.in);
		int W = sc.nextInt();
		int M = sc.nextInt();
		int K = sc.nextInt();
		int n = W/2; // 여자 2명씩 그룹지은 수
		int max = Math.min(M, n); // n과 M 중 적은 수가 최대 참가 팀수
		int leftover = W+M-(3*max); // W+M-(3*max) =총인원-참가인원 = 필요없는 사람들
		int shortage = K-leftover; // K를 leftover 로 채우고도 부족한 사람수
		
        	if(shortage > 0) { // K를 leftover 로 채우고도 부족하면
			if((shortage)%3 ==0) { // %3==0이면 그만큼 해체
				System.out.println(max - ((shortage)/3));
			}else { // 그렇지 않으면 거기서 한팀 더 해체
				System.out.println(max - ((shortage)/3) -1);
			}
		}
		if(shortage <= 0) { // K 가 leftover로 다 충족되면
			System.out.println(max);
		}
	}
}