같은 코드라도 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값이 음수일 경우 부감독관이 필요없는데 부갑독관을 사용하게 됨 -> 이를 해결해주니깐 해결됨