총 N개의 시험장이 있고, 각각의 시험장마다 응시자들이 있다. i번 시험장에 있는 응시자의 수는 Ai명이다.
감독관은 총감독관과 부감독관으로 두 종류가 있다. 총감독관은 한 시험장에서 감시할 수 있는 응시자의 수가 B명이고, 부감독관은 한 시험장에서 감시할 수 있는 응시자의 수가 C명이다.
각각의 시험장에 총감독관은 오직 1명만 있어야 하고, 부감독관은 여러 명 있어도 된다.
각 시험장마다 응시생들을 모두 감시해야 한다. 이때, 필요한 감독관 수의 최솟값을 구하는 프로그램을 작성하시오.
# 코드 구현
1. 주 감독관은 교실 별 한명씩 꼭 들어가야 하므로 우선 주감독관이 관리할 수 있는 학생 수 만큼 빼줌
2. 남은 아이들은 부감독관으로 나누어 올림함
*이때 math.ceil 함수를 사용하였는 데 colab에서는 계산이 바르게 되었는 데 배준에서는 안되어서 우선 몫을 더해준 후 %sub이 0이상이라면(나누어 떨어지지 않는다면) 1을 더해주는 방식으로 올림을 구현해 주었음
1
2
3
4
5
6
7
8
9
10
11
12
13
|
import math
total = 0
for i in range(site):
people[i] -= cap
total += 1
if people[i] > 0 :
total += people[i]//sub
if ( people[i] % sub ) > 0:
total += 1
# total += math.ceil(people[i]/sub)
print(total)
|
cs |
# 느낀점
- 비교적 쉽게 풀었다 !