문제
문제점 해결
각 시험장의 필요한 감독관 수를 구하는 문제로 총감독관은 각 시험장 마다 꼭 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);
}
}