[BOJ13458] 시험 감독

최대 1 분 소요

[BOJ13458] 시험 감독

문제 링크

문제 설명

  • 시험장 개수가 주어지고, 각 시험장마다 시험을 보는 학생 수가 주어진다.
  • 그 후 총 감독관이 감독할 수 있는 학생 수와 부 감독관이 감독할 수 있는 학생 수가 주어진다.
  • 이 때, 총 감독관은 시험장 하나 당 꼭 한명이 들어가야 하고, 부 감독관은 여러명이 들어갈 수 있다.
  • 모든 학생을 감독하기 위해 필요한 감독관의 최소 수를 출력하는 문제이다.

코드 리뷰

  • 단순 수학 문제이다.
  • 시험장 하나 당 총 감독관 한명씩 배치한 후, 남은 학생수에 대해 부 감독관이 감독할 수 있는 학생수로 나누어 나머지가 0일 경우 그 몫만큼 감독 수에 더해주고, 나머지가 0이 아닐 경우는 한명 더 추가해서 더해준다.
#include <iostream>
using namespace std;

int N, c, s;
int A[1000002];

int main() {
	ios::sync_with_stdio(0); cin.tie(0); cout.tie(0);
	cin >> N;
	for (int a = 1; a <= N; a++) {
		cin >> A[a];
	}
	cin >> c >> s;
	long long cnt = N;
	for (int a = 1; a <= N; a++) {
		int tmp = 0;
		A[a] -= c;
		if (A[a] > 0) {
			if (A[a] % s == 0) tmp = A[a] / s;
			else tmp = A[a] / s + 1;
			cnt += tmp;
		}
	}
	cout << cnt << '\n';
	return 0;
}

댓글남기기