[BOJ 13458] 시험 감독

업데이트:

문제

  • BOJ 13458
  • 문제의 저작권은 Baekjoon Online Judge에 있습니다.

접근방식

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;
import java.util.StringTokenizer;

//시험 감독
public class Main {

	static int N; //시험장 수
	static int[] arr; //시험장
	static int B, C;
	static StringTokenizer st;
	static long Ans; //감독관 최소 수

	public static void main(String[] args) throws NumberFormatException, IOException {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		N = Integer.parseInt(br.readLine());
		arr = new int[N];

		st = new StringTokenizer(br.readLine());

		for(int i=0; i<N; i++) {
			arr[i] = Integer.parseInt(st.nextToken());
		} //input 각 시험장 응시자 수

		st = new StringTokenizer(br.readLine());
		B = Integer.parseInt(st.nextToken());
		C = Integer.parseInt(st.nextToken());

		for(int i=0; i<N; i++) {
			//총 감독관이 맡은 수만큼 빼기
			if(arr[i]<B) arr[i]=0;
			else arr[i] -= B;
			Ans++;
		}

		Arrays.sort(arr); //오름차순
		for(int i=N-1; i>=0; i--) { //남아있는 시험장부터 체크
			if(arr[i] == 0) break;
			if(arr[i] % C == 0) Ans += arr[i] / C;
			else Ans += arr[i]/C + 1;
			arr[i] = 0; //비워줌
		}
		System.out.println(Ans);
	}
}