Algorithm/삼성 SW 역량 테스트 기출 문제
[Baekjoon][13458] 시험 감독
어발
2022. 1. 17. 23:03
출처 - 백준사이트
나의 풀이
여기서 중요한 점은 최종 결과를 담을 변수의 크기인데, B, C가 1이고 N과 응시자수 A가 최대값인 1,000,000인 경우 int의 최대값을 넘어감을 유의 한다.
#include <iostream>
#define MAX 1000000
using namespace std;
int N, B, C;
int tester[MAX];
long long result;
int main() {
cin >> N;
for (int idx = 0 ; idx < N ; idx++)
cin >> tester[idx];
cin >> B >> C;
for (int idx = 0 ; idx < N ; idx++) {
result++; // 총감독관은 무조건 한명이니까 더하고
if (tester[idx] - B > 0) { // 총 감독관으로 부족한 경우
if ((tester[idx] - B)/C) { // 부감독관이 한명이상 필요한 경우
if ((tester[idx]-B)%C) // 부감독관으로 나눴을때 나머지가 있는 경우
result += ((tester[idx]-B)/C) + 1;
else // 부감독관으로 나눴을때 딱 떨어지는 경우
result += (tester[idx]-B)/C;
}
else // 부감독관은 한명으로 충분
result++;
}
}
cout << result;
return 0;
}
728x90