입력 : 시험장 갯수 N, 시험장 별 인원 A[i],
총감독관이 감독가능한 인원 B, 부감독관이 감독가능한 인원 C
출력 : 필요한 감독관의 총 인원수
풀이
1. 각 시험장에 총감독관을 한명씩 비치
2. 총감독관으로 관리할 수 없는 인원이 있으면 부감독관을 비치
3. (A[i]-B) / C 이 연산을 통해 각 시험장에 필요한 부감독관 인원을 바로 구할 수 있다.
-> (A[i]-B) % C > 0이면 위 연산의 결과에서 부감독관이 한명 더 필요하다
4. 시험장 갯수, 인원이 모두 최대 10만이기 때문에 결과값은 int범위를 넘어갈 수 있다.
-> long long으로 선언
소스코드
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33 |
#include <iostream>
using namespace std;
int main() {
int n;
int A[1000003];
int B,C;
long long result = 0;
cin>>n;
for(int i=0; i<n; i++)
cin>>A[i];
cin>>B>>C;
for(int i=0; i<n; i++){
A[i] -= B;
result += 1;
if(A[i] <= 0)
continue;
result += A[i]/C;
if(A[i]%C != 0)
result += 1;
}
cout<<result<<endl;
return 0;
} |
cs |
'개발 > 알고리즘' 카테고리의 다른 글
백준 알고리즘 14500 (0) | 2019.02.19 |
---|---|
백준 알고리즘 14501 (0) | 2019.02.16 |
백준 알고리즘 11931 (0) | 2019.02.15 |
백준 알고리즘 14499 (0) | 2019.02.15 |
백준 알고리즘 12100 (0) | 2019.02.14 |