시험 감독_13458

ddo_h·2020년 5월 31일
0
post-thumbnail

문제 출처 : 시험감독_13458

문제 후기

같은 코드라도 iterator를 쓸 때와 그냥 배열처럼 불러올 때 속도 차이가 발생함
iterator 쓸 때 20ms 정도 단축됨

파라미터 정리

N 시험장 개수 (1~1,000,000)
Ai i번 시험장에 있는 응시자 수 (1~1,000,000)
B 총감독관이 한 시험장에서 감시할 수 있는 응시자의 수
C 부감독관이 한 시험장에서 감시할 수 있는 응시자의 수 (1~1,000,000)
한 시험장 안에 총감독관은 1명만, 부감독관은 여러명 가능
원하는 것 = 필요한 감독관 수의 최솟값을 반환하기

간략한 과정

input_1 N 입력받기
input_2 Ai 응시자수 N번 입력받기
input_3 B,C 입력받기
output 모든 응시생을 감독하기 위해 필요한 감독관의 최소 수를 출력한다.

코드

#include <iostream>
#include <vector>

using namespace std;

int N,B,C;
vector<int> people;

long long solve(){
    long long res = 0;
    for(vector<int>::iterator it = people.begin(); it != people.end(); it++){
        int curr = *it;
        curr -= B;
        res ++;
        if(curr <= 0) continue;
        res += curr/C;
        if(curr%C != 0) res++;
    }
    return res;
}

int main()
{
    cin >> N;
    for(int i = 0; i < N; i++){
        int temp;
        cin >> temp;
        people.push_back(temp);
    }
    cin >> B >> C;
    cout << solve() << endl;
    return 0;
}

시행착오

백업_0531_pm11:40
구현 완료함, 예제는 다 맞는데 제출 시 틀렸다고 나옴
-> 필요한 감독 수가 int 자료형을 넘어간다고 해서 longlong으로 바꿨음
->그래도 실패라고 나옴 -> 내일 다시 해결
longlong은 cout이 안되는가..? 내일 printf로 도전해봄
->문제는 총감독관을 빼고난 후 curr값이 음수일 경우 부감독관이 필요없는데 부갑독관을 사용하게 됨 -> 이를 해결해주니깐 해결됨

profile
열심히!

0개의 댓글