13458번: 시험 감독
첫째 줄에 시험장의 개수 N(1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄에는 각 시험장에 있는 응시자의 수 Ai (1 ≤ Ai ≤ 1,000,000)가 주어진다. 셋째 줄에는 B와 C가 주어진다. (1 ≤ B, C ≤ 1,000,000)
www.acmicpc.net
- 브론즈 2레벨 문제 (삼성역량 테스트 문제에서는 가장 쉬운 난이도...)
- 총감독관이 없어도 되는지에 대한 의문이 남긴한다.
- 최대 입력이 1,000,000 으로 주어지기 때문에 long long으로 값을 출력하였다.
- 코드
더보기
#include <iostream>
#include <vector>
// size
#define INPUT_MAX_SIZE 1000000
// debug
#define debug_m 0
// method
long long Calc(const int src, const int B, const int C);
int main()
{
// init
std::ios::sync_with_stdio(false);
// input
int N = 0; // 시험장의 개수
(void)scanf("%d", &N);
std::vector<int> ALists;
for (int n = 0; n < N; n++)
{
int A = 0; // 각 시험장마다 응시생 수
(void)scanf("%d", &A);
ALists.push_back(A);
}
int B, C; // 총, 부감독관이 한 시험장에서 감시할 수 있는 수
B = C = 0;
(void)scanf("%d %d", &B, &C);
// calc
/**
* 각각의 시험장에 총 감독관은 오직 1명
* 부감독관은 여러명 있어도 된다.
* 총감독관 없이 부감독관만 있어도 되는가?
* */
long long answer = 0;
for (int humman : ALists)
{
answer += Calc(humman, B, C);
}
// print
printf("%lld\n", answer);
return 0;
}
// mehtod
long long Calc(const int src, const int B, const int C)
{
long long retValue = 0;
#if debug_m
printf("src: %d, B: %d, C: %d\n", src, B, C);
#endif
int data = src;
if (B >= data)
retValue = 1;
else
{
data -= B;
retValue += 1;
retValue += data / C;
const int modValue = data % C;
if (0 != modValue)
retValue += 1;
}
return retValue;
}
'Coding Problem > SW 역량 테스트' 카테고리의 다른 글
[백준/SW역량테스트 기출] 14888 - 연산자 끼워넣기 (0) | 2021.05.16 |
---|---|
[백준/SW역량테스트 기출] 14889 - 스타트와 링크 (0) | 2021.05.13 |