계산 자체는 간단한 문제입니다.
하지만 한명의 주감독관이 모두 감독을 할 수 있을 때 1을 출력하는 경우와 주감독관이 감독하고 남은 학생들(A[i] - B)이 부감독관이 감독할 수 있는 수 (C)로 나누어 떨어지지 않는 경우 + 1을 해주는 2가지 예외를 신경 써주어야 합니다.
// 입력 받기
let N = Int(readLine()!)!
let rooms = readLine()!.split(separator: " ").map { Int(String($0))! }
let input = readLine()!.split(separator: " ").map { Int(String($0))! }
let B = input[0], C = input[1]
// 필요한 감독관의 수를 구하기
func getNumber(_ n: Int) -> Int {
var result = 0
var num = n
// 주 감독관이 담당하는 학생만큼 빼기
num -= B
result += 1
// 주 감독관이 모두 커버할 수 있는 경우
if num <= 0 {
return result
}
// 부감독관의 수 구하기
if num % C == 0 {
result += num / C //👉 나누어 떨어지는 경우
} else {
result += num / C + 1 //👉 나누어 떨어지지 않으면 1명 추가
}
return result
}
var cnt = 0
for room in rooms {
cnt += getNumber(room)
}
print(cnt)