문제

백준 13458 시험 감독 문제 보러가기



문제점 해결

각 시험장의 필요한 감독관 수를 구하는 문제로 총감독관은 각 시험장 마다 꼭 1명씩 배치되어야 한다. N(시험장의 개수)번 만큼 반복문을 돌리면서 각 시험장 응시자의 수 A(i)에서 총감독관이 감시 가능한 응시자 수(B)를 빼준 뒤 필요한 감독관 수(answer)를 증가시킨다. 만약 총감독관 1명만으로 감시가 가능하지 않는다면 추가로 필요한 부감독관의 수를 계산한다.

“필요한 부감독관 수 = 남은 응시자 수 / 1명의 부감독관이 감시 가능한 수” 이며 이때 나머지가 있다면 부감독관 수를 하나 더 늘려준다. 단순 계산으로 쉽게 풀 수 있었으며 총감독관 수를 뺀 후 남은 응시자의 수를 체크할 때 남은 응시자 수가 음수가 될 수 있음을 주의해야한다.



풀이

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

public class Main {
	public static void main(String[] args) throws 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 B = Integer.parseInt(st.nextToken());
		int C = Integer.parseInt(st.nextToken());
		
		long answer = 0;
		for (int i = 0; i < N; i++) {
			arr[i] -= B;
			answer++;
			
			if(arr[i] < 0) {
				continue;
			}
			
			answer += arr[i] / C + (arr[i] % C == 0 ? 0 : 1);
		}
		
		System.out.println(answer);
	}
}