본문 바로가기

백준/그리디

백준 13458 - 시험 감독

728x90

www.acmicpc.net/problem/13458

 

13458번: 시험 감독

첫째 줄에 시험장의 개수 N(1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄에는 각 시험장에 있는 응시자의 수 Ai (1 ≤ Ai ≤ 1,000,000)가 주어진다. 셋째 줄에는 B와 C가 주어진다. (1 ≤ B, C ≤ 1,000,000)

www.acmicpc.net

지문을 유의하여 보자.

 

총감독관은 오직 1명이고 부감독관은 여러명 있어도 된다고 한다.

 

예제 TC를 통해 해당 문장의 정확한 뜻을 유추해보자.

1
1
1 1

한개의 시험장에 한명이 시험볼 때 1을 출력할 것을 요구하고 있다.

 

즉 이 TC의 답 1은 무조건 들어가야 하는 총감독관을 의미하고 부감독관은 들어가지 않아도 상관없음을 알 수 있다.

 

이를 통해 총감독관을 포함하여 각 시험장에 모든 응시생을 감시할 수 있는 최소 감독관을 배치하면 필요한 감독관의 최소 인원을 구할 있게 된다.

 

나누기와 나머지 연산을 통해 각 시험장에 감독관 몇명이 필요한지 구현하도록 하자.

 

전체 코드

더보기
#include <bits/stdc++.h>

using namespace std;
using ll = long long;

ll res;

int main()
{
    ios::sync_with_stdio(false); cin.tie(nullptr);
    
    int n; cin >> n;
    vector<int> field(n);
    
    for (int i = 0; i < n; ++i)
        cin >> field[i];
    
    int master, slave;
    cin >> master >> slave;
    
    for (int j = 0; j < n; ++j)
    {
        field[j] -= master, ++res;
        if (field[j] <= 0)
            continue;
        
        res += field[j] / slave;
        if (field[j] % slave)
            ++res;
    }
    
    cout << res;
}

 

728x90

'백준 > 그리디' 카테고리의 다른 글

백준 1082 - 방 번호  (0) 2020.07.08
백준 1080 - 행렬  (0) 2020.06.21
백준 1758 - 알바생 강호  (0) 2020.06.06
[ICPC] 백준 17521 - Byte Coin  (0) 2020.06.05
백준 4796 - 캠핑  (0) 2020.05.30