문제풀이(Problem Solving)

백준, BOJ, 13458번 C++ [CPP] **

게임이 더 좋아 2021. 5. 23. 03:16
반응형
728x170

간단한 산수문제다.

 

 

메모리제한 256이 아니라 512네?

우선 두고보자

https://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

 

 


 

시간 5분이나 더 썼다.

 

1,000,000 * 1,000,000 는... 우선 21억을 넘어간다.

ㅎㅎ int형으로는 불가능

long long으로 쓰자. 64비트다.

int는 32 비트다.

2^32배 더 큰 수를 표현할 수 있다.

21억 * 21억 하면 되겠다.

 

# 맞는 풀이

 

#include <iostream>
#include <vector>

using namespace std;

int N; //시험장 개수

int B, C; // 총감독관, 부감독관 감독 인원

long long sum = 0; // 최소 감독 수

vector<int> V;

int main() {
    cin >> N;

    while (N--) {
        int man;
        cin >> man;
        V.push_back(man);
    }

    int B, C;
    cin >> B >> C;


    for (int mans : V) {
        mans -= B;
        
        //총감독관만으로 충분하면
        if (mans <= 0) {
            sum++;
        }
        else {
            sum++; // 총감독관은 필수
            int remain;
            remain = mans % C;
            //부감독관은
            if (remain == 0) {
                sum += mans/C;
            }
            else {
                sum += (mans/C)+1;
            }
        }

    }
    cout << sum;
}

 

 

728x90
반응형
그리드형