Hello, Freakin world!

[백준 2875번][Java] 대회 or 인턴 - 간단한 방정식 본문

알고리즘/PS

[백준 2875번][Java] 대회 or 인턴 - 간단한 방정식

johnna_endure 2020. 10. 4. 18:08

www.acmicpc.net/problem/2875

 

2875번: 대회 or 인턴

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

www.acmicpc.net

 

 

 

 

위에서 a값(인턴에 참가하는 남학생 수)를 구할 때, 정수가 아닌 값이 나올 수가 있다. a값은 팀의 수가 최대일 때의 값이므로 이 값에 최대한 가까운 정수값을 써야 한다. 간단하게 이 값을 반올림해주면 된다. (값이 범위를 넘어가는 경우에는 0 또는 k값을 반환하도록 처리해줘야 한다.)

 

그 다음은 남자, 여자 총원에서 a, k-a를 각각 빼주고 팀을 카운트하면 끝~

 

 

import java.io.*;
import java.util.ArrayList;
import java.util.List;
import java.util.StringTokenizer;

/*
대회 or 인턴
https://www.acmicpc.net/problem/2875
 */
public class Main {
	static int n,m,k;
	public static void main(String[] args) throws IOException {
//		InputReader reader = new InputReader("testcase.txt");
		InputReader reader = new InputReader();
		StringTokenizer st = new StringTokenizer(reader.readLine());

		n = Integer.parseInt(st.nextToken());
		m = Integer.parseInt(st.nextToken());
		k = Integer.parseInt(st.nextToken());

		int a = Math.round((2*m + k - n)/3f);
		if(a > k) a = k;
		if(a < 0) a = 0;

		int ret = makeTeam(n-k+a, m-a);
		System.out.println(ret);
	}

	private static int makeTeam(int woman, int man) {
		int teamCnt = 0;
		while(woman >= 2 && man >= 1) {
			woman -= 2;
			man--;
			teamCnt++;
		}
//		System.out.println(woman+ " "+man);
		return teamCnt;
	}
}

class InputReader {
	private BufferedReader br;

	public InputReader() {
		br = new BufferedReader(new InputStreamReader(System.in));
	}

	public InputReader(String filepath) {
		try {
			br = new BufferedReader(new FileReader(filepath));
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		}
	}

	public List<Character> readLineIntoCharList() throws IOException {
		List<Character> l = new ArrayList<>();
		while(true) {
			int readVal = br.read();
			if(readVal == '\n' || readVal == -1) break;
			l.add((char)readVal);
		}
		return l;
	}

	public boolean ready() throws IOException {
		return br.ready();
	}

	public String readLine() throws IOException {
		return br.readLine();
	}
	public int readInt() throws IOException {
		return Integer.parseInt(readLine());
	}
	public Long readLong() throws IOException {
		return Long.parseLong(readLine());
	}
}
Comments