• Home
  • About
    • 코드좀비 photo

      코드좀비

      An amazing website.

    • Learn More
    • Github
  • Posts
    • All Posts
    • All Tags
  • Projects

[BOJ] 백준 13458 시험 감독 간단한설명과 코드 C++

29 Dec 2019

Reading time ~1 minute

문제 정보

백준 ( BOJ ) 13458 시험 감독

문제 풀이 : queue 를 이용한 계산 문제

문제 출처 : https://www.acmicpc.net/problem/13458

문제 풀이

이번 문제는 삼성 기출 문제 치고는 상당히 간단한 편 입니다.

  1. 각 방의 인원수를 모두 queue 에 넣는다.

  2. 하나씩 팝 해가며, 각 값에 주 감독관 수를 뺀다.

  3. 주 감독관 수를 뺀 후 남은 값에 서브 감독관 수 를 나눈 값을 더해줍니다.

3-1. 이떄, 딱 맞아 떨어지지 않는 한 나머지 값을 위해 +1 해줍니다.

(혹은 float 형식으로 나눈 후, 올림 해주셔도 됩니다.)

케이스 검토

첫째 줄에 시험장의 개수 N(1 ≤ N ≤ 1,000,000)이 주어진다.

둘째 줄에는 각 시험장에 있는 응시자의 수 Ai (1 ≤ Ai ≤ 1,000,000)가 주어진다.

셋째 줄에는 B와 C가 주어진다. (1 ≤ B, C ≤ 1,000,000)

N : 문제 없음

B,C : 문제 없음

Ai : 문제 없음

result : 문제 있음.

condition

N : 100000
Ai : 100000
B,C : 1, 1 
result : 10000000000000 > int range
=> long int 사용

문제 풀이

#include <iostream>
#include <queue>

using namespace std;

int main() {
	int room;
	int mainD;
	int subD;
	int temp;
	long long int result;
	queue<int> people;

	cin >> room;
	result = room;
	while (room) {
		cin >> temp;
		people.push(temp);
		room--;
	}
	
	cin >> mainD >> subD;

	while (!people.empty()) {
		temp = people.front();
		people.pop();
		temp -= mainD;
		if (temp > 0) {
			result += temp / subD;
			if (temp%subD != 0) {
				result++;
			}
		}
	}

	cout << result;
	cin >> temp;
	return 0;
}


백준C++queue Share Tweet +1