[백준] 2875번 대회 or 인턴

개발자 P군·2024년 5월 27일
0
post-thumbnail
post-custom-banner

📖 문제

백준대학교에서는 대회에 나갈 때 2명의 여학생과 1명의 남학생이 팀을 결성해서 나가는 것이 원칙이다. (왜인지는 총장님께 여쭈어보는 것이 좋겠다.)

백준대학교는 뛰어난 인재들이 많아 올해에도 N명의 여학생과 M명의 남학생이 팀원을 찾고 있다. 대회에 참여하려는 학생들 중 K명은 반드시 인턴쉽 프로그램에 참여해야 한다. 인턴쉽에 참여하는 학생은 대회에 참여하지 못한다.

백준대학교에서는 뛰어난 인재들이 많기 때문에, 많은 팀을 만드는 것이 최선이다.

여러분은 여학생의 수 N, 남학생의 수 M, 인턴쉽에 참여해야하는 인원 K가 주어질 때 만들 수 있는 최대의 팀 수를 구하면 된다.

✍ 입력

첫째 줄에 N, M, K가 순서대로 주어진다. (0 ≤ M ≤ 100, 0 ≤ N ≤ 100, 0 ≤ K ≤ M+N),

📄 출력

만들 수 있는 팀의 최대 개수을 출력하면 된다.

✅ 코드

import java.util.Scanner;

public class baekjoon_2875 {

    /* 대회 or 인턴 */
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int N = sc.nextInt();   // 여학생 수
        int M = sc.nextInt();   // 남학생 수
        int K = sc.nextInt();   // 인턴쉽 수
        int teamCount = 0;

        while(N >= 2 && M > 0 && (N+M) >= K + 3) {
            N = N - 2;
            M = M - 1;
            teamCount++;
        }

        System.out.println(teamCount);
    }
}

🧩 코드풀이

  1. 여학생 수 "N", 남학생 수 "M", 인턴쉽 수 "K"를 입력 받는다.
  2. while문을 이용하여 반복할 때마다 대회에 참석하는 수 만큼 빼준다. (N-2, M-1)
  3. 이렇게 N의 값이 2 이상, 남학생 수가 1 이상, (남학생 + 여학생) 이 (인턴쉽 + 참여 인원) 보다 같거나 큰지 비교하여 count 해준 수를 출력해준다.
profile
꾸준한 발전을 지향하는 개발자
post-custom-banner

0개의 댓글