처음 생각
간단해 보이는데 의외로 생각을 많이하게 하는 문제였다
처음에는 여자, 남자, 인턴십 인원 따로따로 생각했는데
결국 몇 팀이 나갈지를 물어보는 거니까 남자가 몇명남고 여자가 몇명 남든 인원수만 맞으면 된다는 생각이 들었다
여자 몇명, 남자 몇명이 인턴십 인원을 채울지 계산하지 않고, 결국 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);
}
}
}
'백준 풀이' 카테고리의 다른 글
[백준 풀이_Java] 2941 크로아티아 알파벳 (0) | 2021.10.31 |
---|---|
[백준 풀이_Java] 2292 벌집 (0) | 2021.10.29 |
[백준 풀이_Java] 7568 덩치 (0) | 2021.10.28 |
[백준 풀이_Java] 1316 그룹단어 체커 (0) | 2021.10.27 |
[백준 풀이_Java] 1946 신입사원 (0) | 2021.10.23 |