시나브로

13458. 시험감독 본문

알고리즘/백준

13458. 시험감독

혬혬 2020. 6. 1. 23:35
728x90

 

 

Solution 

  1. 총감독관은 필수적이기 때문에 배치한다
  2. 이에 따른 answer값과 space(고사장별 응시자 수를 저장하는 vector 변수)값을 연산해준다.
  3. 이후 남은 응시자수를 C로 나눈 몫이 부감독관의 수이기 때문에 연산을 해준다
  4. 단, 여기서 유의점은 몫이 나눠어 떨어지지 않을 경우, 부감독관이 한명 더 필요하다는 것이다. 

 

Key Point

answer 변수형태를 long long으로 해야한다. 시험장 개수가 1000000개이며, 시험장별로 최대 응시자 수도 1000000이기에 long long 변수형태를 이용해야된다. 이를 사용하지 않을 경우, 바로 틀렸습니다가 뜬다 유의하길.

또한, 총감독관의 수를 뺀 이후 응시자의 값이 음수가 될 수 있음을 유의하라.

 

#include<iostream>
#include<stdio.h>
#include<algorithm>
#include<vector>
#include<stdlib.h>
using namespace std;

int main(void) {
	
	int size = 0;
	cin >> size;
	vector<int> space;
	int box;
	for (int i = 0; i < size; i++) {
		cin >> box;
		space.push_back(box);
	}
	int a, b;
	cin >> a >> b;
	long long answer = space.size();
	for (int i = 0; i < space.size(); i++) {
		space[i] -= a;
		if (space[i] > 0) {
			answer += (space[i] / b);
			if (space[i] % b != 0)
				answer++;
		}
	}
	cout << answer;
	return 0;
}

 

728x90

'알고리즘 > 백준' 카테고리의 다른 글

14499. 주사위 굴리기  (0) 2020.06.03
13460. 구술 탈출 2  (0) 2020.06.03
1197. 최소 스패닝 트리  (0) 2020.01.17
1181. 단어 정렬  (0) 2020.01.16
15829. Hashing  (0) 2020.01.14
Comments