백준[13458] - 시험 감독

문제

백준 13458 문제 보기

접근 방법

비교적 간단한 문제이다. 일단 모든 방에 총감독이 있어야 한다. 따라서 모든 방에 총감독이 배치되고 총감독이 관리할 수 있는 인원을 뺀 상태에서 시작한다. 관리해야할 인원이 더 있다면 그 때부터 부감독관을 넣는다.
여기서 주의해야하는 점은 정답 출력을 int로 하다보면 오버플로우가 나 제대로된 정답을 출력할수가 없다.

코드

#include <iostream>

using namespace std;

int N;
int studentNum[1000001];
int captain;
int vice;

int main() {

    cin >> N;
    for(int i = 1; i <= N; i ++) {
        cin >> studentNum[i];
    }
    cin >> captain >> vice;

    long long ans = N;
    for(int i = 1; i <= N; i ++) {
        studentNum[i] = studentNum[i] - captain;
        int students = studentNum[i];
        int temp;

        if(students > 0) {
            if(students % vice == 0) {
                temp = students / vice;
            } else {
                temp = (students / vice) + 1;
            }
            ans += temp;
        }
    }
    cout << ans;
    return 0;
}
Share