https://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
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt(); // 시험장의 개수
int[] arr = new int[n]; // 시험장에 있는 응시자 수를 담을 배열 생성
for (int i = 0; i < n; i++) {
int a = sc.nextInt(); // 응시자 수
arr[i] = a;
}
int b = sc.nextInt(); // 총감독관이 한 시험장에서 감시할 수 있는 응시자의 수
int c = sc.nextInt(); // 부감독관이 한 시험장에서 감시할 수 있는 응시자의 수
long b_count = 0; // 총감독관 수
long c_count = 0; // 부감독관 수
for (int j = 0; j < n; j++) {
if (b < arr[j]) { // 한 시험장에 있는 응시자 수가 총감독관이 감시할 수 있는 응시자의 수보다 클 때
b_count++; // 총감독관 수는 1명만 있어야 함
if ((arr[j] - b) % c == 0) { // 필요한 부감독관 수 구하기
c_count += ((arr[j] - b) / c);
} else c_count += ((arr[j] - b) / c) + 1; // 나머지 있으면 부감독관은 한 명 더 필요
}
else b_count++; // 혹시 시험장에 있는 응시자 수가 총감독관이 감시할 수 있는 응시자의 수보다 작거나 같을 때
// 총감독관 수 1명 필요
}
System.out.println(b_count + c_count); // 필요한 총감독관 수 + 부감독관 수 출력
}
}