[백준] 2875번 : 대회 or 인턴 - JAVA [자바]

가오리·2024년 1월 30일
1
post-thumbnail

https://www.acmicpc.net/problem/2875


그리디 알고리즘 문제이다.

2명의 여학생과 1명의 남학생이 팀을 결성한다.

  1. 현재 2명 이상의 여학생이 있는지
  2. 현재 1명 이상의 남학생이 있는지
  3. 위의 1, 2번 조건을 충족하여 팀을 결성했을시 전체 인원 - 3명(팀원수) 한 뒤 인턴을 보낼 K 명이 남아 있는지

위의 조건들을 살피며 팀을 만들때 여학생 2명 남학생 1명씩 줄여나가며 정답을 도출한다.


public class bj2875 {

    public static void main(String[] args) throws Exception {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

        String line = br.readLine();
        String[] split = line.split(" ");

        int N = Integer.parseInt(split[0]);
        int M = Integer.parseInt(split[1]);
        int K = Integer.parseInt(split[2]);
        int answer = 0;

        // 2명의 여학생과 1명의 남학생이 팀을 결성
        // 현재 여학생이 2명 이상이고 남학생이 1명 이상이여서 한팀을 결성할 수 있다
        // 이때 팀을 결성하면 총 인원에서 3명이 빠지고 또한 K명을 또 빼야한다
        // 즉, 총 인원에서 K명을 인턴에 보내고 나머지 인원들 중
        // 3명으로 팀을 만들 수 있는지 확인
        while (N >= 2 && M >= 1 && (N + M) - K >= 3) {
            answer++;
            N -= 2;
            M--;
        }
        System.out.println(answer);
        br.close();
    }
}
profile
가오리의 개발 이야기

0개의 댓글

관련 채용 정보