https://www.acmicpc.net/problem/13458
-- 총 N개의 시험장이 있고, 각각의 시험장마다 응시자들이 있다. i번 시험장에 있는 응시자의 수는 Ai명이다.
-- 감독관은 총감독관과 부감독관으로 두 종류가 있다.
-- 총감독관이 한 시험장에서 감시할 수 있는 응시자의 수 == B
-- 부감독관이 한 시험장에서 감시할 수 있는 응시자의 수 == C
-- 각각의 시험장에 총감독관은 오직 1명만 있어야 하고, 부감독관은 여러 명 있어도 된다.
-- 각 시험장마다 응시생들을 모두 감시해야 한다. 이때, 필요한 감독관 수의 최솟값을 구하시오
-- 첫째 줄에 시험장의 개수 N(1 ≤ N ≤ 1,000,000)이 주어진다.
-- 둘째 줄에는 각 시험장에 있는 응시자의 수 Ai (1 ≤ Ai ≤ 1,000,000)가 주어진다.
-- 셋째 줄에는 B와 C가 주어진다. (1 ≤ B, C ≤ 1,000,000)
당연하겠지만 총감독관을 각 시험장에 한명씩 배치, 총감독관이 감시할 수 있는 학생수를 제외한 남은 학생 수를 부감독관이 감시할 수 있는 학생수로 나누고 몫이 0일경우 1, 나머진 몫들을 더해준다!
돌아가면서 하나씩 빼기를 진행해야 한다 -> For문과 List 사용
왜냐면 내가 제일 익숙하니까,,,
아니 개어렵다 난 아무래도 여러 단계가 필요하면 뇌정지부터 오는듯
단계 별로 풀어보기
-- 총감독관이 한 시험장에서 감시할 수 있는 응시자의 수 == B
-- 부감독관이 한 시험장에서 감시할 수 있는 응시자의 수 == C
-- 응시자의 수 == A
N = int(input())
A = list(map(int, input().split()))
B, C = map(int, input().split())
def Cal_supervisors(N, A, B, C):
total_supervisors = 0
for i in range(N):
remaining_candidates = A[i] - B
total_supervisors += 1
if remaining_candidates > 0:
if C % remaining_candidates == 0:
total_supervisors += remain_candidates // C
else:
total_supervisors += remaining_candidates // C + 1
return total_supervisors
N = int(input())
A = list(map(int, input().split()))
B, C = map(int, input().split())
def calculate_supervisors(N, A, B, C):
total_supervisors = 0
for i in range(N):
remaining_candidates = A[i] - B
total_supervisors += 1
if remaining_candidates > 0:
if remaining_candidates % C == 0:
total_supervisors += remaining_candidates // C
else:
total_supervisors += remaining_candidates // C + 1
return total_supervisors
result = calculate_supervisors(N, A, B, C)
print(result)
그렇게 정답,,