n = int(input())
tester = list(map(int, input().split()))
a, b = map(int, input().split())
cnt = n
for i in tester:
i -= a
if i > 0:
if i % b:
cnt += (i // b) + 1
else:
cnt += (i // b)
print(cnt)
풀이
이 문제는 %와 //을 활용하면 쉽게 풀 수 있는 수학문제입니다🙌🏻
n 변수에 시험장 수를 입력받고, tester 변수에는 시험장 응시자의 수를 입력받고
a, b 변수는 각각 총감독관과 부감독관의 수를 입력받습니다.
다음으로 필요한 감독관의 최솟값을 구하기 위한 변수 cnt를 설정하고
for문으로 시험장 응시장 수인 tester 리스트로부터 i 인자를 사용합니다.
key point 1
결국 이 문제는 총감독관이 부족한 곳을 찾는 문제이기에
응시자의 수(tester)에서 총감독관의 수인(a)를 빼줍니다.
다음으로 응시자의 수가 더 많을 경우에(i > 0) 부감독관을 몇 명 붙여줄지 정해줍니다.
key point 2
만약 i & b 즉, 응시자의 남은 수에서 부감독관의 수를 나눈 값이 1이상이라면 True이므로 if문의 조건을 실행시킵니다. 이때 응시자의 남은 수에서 부감독관의 수를 나눈 몫에서 +1을 더한 값을 cnt에 더해줍니다.
반대로 i & b가 딱 맞아떨어지는 0이 나오면 False이므로 else의 조건을 실행시킵니다. 이때는 응시자의 남은 수가 딱 맞아떨어지는 것이므로 부감독관의 수를 나눈 몫을 cnt에 더해줍니다.