굥뷰를 햡시댜
[BOJ-13458] 시험감독 본문
https://www.acmicpc.net/problem/13458
삼성 기출문제이다.
상당히 쉬운 난이도의 시뮬레이션 문제였다.
주의할 점은 출력할 때의 값이 크기 때문에 long long으로 받아와서 출력해야한다.
- 풀이 방법
1. 입력을 받는다.
2. 총감독관은 1명이기 때문에 총감독관이 감시할 수 있는 인원수를 해당 시험장의 인원에서 빼준다.
3. 부감독관의 경우 여러명이 올 수 있다. 그래서 부감독관이 나머지 인원을 감시해야 하기 때문에 시험장의 나머지 인원을부감독관이 감시할 수 있는 인원만큼 나눠준다.
(나머지가 0일 경우(다 나눠질 경우)와 나머지가 0이 아닐 경우로 나눈다.)
4. 나머지가 0이 아닐 경우 감시할 수 있는 인원에 1명을 더 더한다.(나머지는 나눈 수보다 무조건 작기 때문에)
5. 나머지가 0일 경우 시험장의 인원이 부감독관이 감시할 수 있는 인원보다 크면 나눈 몫을 더해주고 작을 경우 1명을 더해준다.
#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
using namespace std;
int n;
long long res;
int map[1000001];
int b, c;
int main(void) {
scanf("%d", &n);
for (int i = 0; i < n; i++) {
scanf("%d\n", &map[i]);
}
scanf("%d %d", &b, &c);
for (int i = 0; i < n; i++) {
if (map[i] - b >= 0) {
map[i] -= b;
res += 1;
} //총감독관
else {
map[i] = 0;
res += 1;
continue;
}
if (map[i] == 0) continue;
if (map[i] % c != 0) res += (map[i] / c) + 1;
else {
if (map[i] > c) {
res += map[i] / c;
}
else {
res += 1;
}
}
}
printf("%lld\n", res);
getchar();
getchar();
return 0;
}
'알고리즘 문제 풀이 > BOJ 문제 풀이' 카테고리의 다른 글
[BOJ - 17406] 배열 돌리기 4 (0) | 2019.08.17 |
---|---|
[BOJ-17281] 야구 (0) | 2019.08.16 |
[BOJ-14891] 톱니바퀴 (0) | 2019.07.31 |
[BOJ-15686] 치킨배달 (0) | 2019.07.26 |
[BOJ-14503] 로봇청소기 (0) | 2019.07.26 |
Comments