ALGORITHM

[JAVA] 백준 2875 - 대회 or 인턴

연듀 2022. 11. 22. 10:07

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

 

2875번: 대회 or 인턴

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

www.acmicpc.net

 

 

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;

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 && m+n>=3+k){
            n -=2;
            m -=1;
            cnt++;
        }

        System.out.println(cnt);

    }
}

 

n과 m 각각 2명, 1명을 빼가며 카운팅해주는 방법이다. 

 

 

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;

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()); // 인턴쉽에 참여해야하는 학생 수


        for(int i=0; i<k; i++){
            if(n/2 >= m) n--;
            else m--;
        }

        System.out.println(Math.min(n/2, m));
    }
}

 

만들 수 있는 최대 팀은 n/2와 m 중 작은 값이다.

n/2 와 m중 n/2이 같거나 크다면 n을 한명 빼고, m이 크다면 m을 한명 빼는 것을 k번 반복한다.

 

'ALGORITHM' 카테고리의 다른 글

[JAVA] 백준 1931- 회의실 배정  (0) 2022.11.23
[JAVA] 백준 10610 - 30  (0) 2022.11.23
[JAVA] 백준 11047 - 동전 0  (0) 2022.11.22
[JAVA] 백준 14500번- 테트로미노  (0) 2022.11.17
[JAVA] 백준 1107 - 리모컨  (0) 2022.11.17