Algorithm/Baekjoon Online Judge

[Java] BOJ13458_시험 감독

'지훈' 2021. 4. 19. 00:00

www.acmicpc.net/problem/13458

 

13458번: 시험 감독

첫째 줄에 시험장의 개수 N(1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄에는 각 시험장에 있는 응시자의 수 Ai (1 ≤ Ai ≤ 1,000,000)가 주어진다. 셋째 줄에는 B와 C가 주어진다. (1 ≤ B, C ≤ 1,000,000)

www.acmicpc.net


단순 구현문제이다.

"각각의 시험장에 총감독관은 오직 1명만 있어야 하고, 부감독관은 여러 명 있어도 된다." 이 부분에서 총 감독관이 반드시 1명 있어야한다는 뜻이 없지만 예제의 출력을 봤을 때 반드시 1명 있어야하는 것을 알 수 있었다.

따라서 시험장 인원이 총감독관 한명으로 다 감독 가능하면 결과를 1 증가시켜줬고 그 경우가 아닐 때는 총감독관이 감시하는 인원을 제외한 인원을 부감독관이 감독할 수 있는 응시자의 수만큼 나눈 값을 결과에 증가시켜줬다.

이 때 나머지가 있고 없음을 주의한다.

 

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

public class Main {

	public static void main(String[] args) throws NumberFormatException, IOException {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		int N = Integer.parseInt(br.readLine());
		StringTokenizer st = new StringTokenizer(br.readLine());
		int[] arr = new int[N];
		for(int i = 0; i < N; i++) {
			arr[i] = Integer.parseInt(st.nextToken());
		}
		st = new StringTokenizer(br.readLine());
		int total = Integer.parseInt(st.nextToken());
		int bu = Integer.parseInt(st.nextToken());
		long res = 0;
		for (int i = 0; i < N; i++) {
			if(arr[i] <= total) res++;
			else {
				if((arr[i]-total) % bu == 0) res += (arr[i]-total) / bu;
				else {
					res += (arr[i]-total) / bu;
					res++;
				}
				res++;
			}
		}
		System.out.println(res);
	}

}