백준(Python) 풀이/수학

백준(Python) 13458번 시험 감독 풀이

개발윗미 2021. 10. 9. 11:07

Python으로 구현한 13458번 시험 감독 문제 풀이입니다.

 

https://www.acmicpc.net/problem/13458

 

13458번: 시험 감독

첫째 줄에 시험장의 개수 N(1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄에는 각 시험장에 있는 응시자의 수 Ai (1 ≤ Ai ≤ 1,000,000)가 주어진다. 셋째 줄에는 B와 C가 주어진다. (1 ≤ B, C ≤ 1,000,000)

www.acmicpc.net


n = int(input())
people = list(map(int, input().split()))
b, c = map(int, input().split())

result = n

for i in range(n) :
  temp = people[i] - b

  if temp > 0 :
    temp1 = temp//c
    temp2 = temp%c

    if temp2 > 0 :
      temp2 = 1
    
    result += temp1 + temp2

print(result)

 

시험장에 있는 총 감독관의 수는 n명이기 때문에 변수 result에 n을 먼저 할당한다.

 

반복문을 통해 변수 temp에 각 시험장에 있는 응시자의 수 - 총감독관이 감시할 수 있는 응시자 수 를 계산하여 할당하고

 

그 값이 0보다 크면 변수 temp1에 부감독관이 감시할 수 있는 응시자 수로 나눈 몫을 할당하고

 

변수 temp2에는 나머지 값을 할당한다.

 

그 후 다시 조건문을 통해 나머지 값이 0보다 크면 1로 다시 갱신해준다.

 

result 값에 temp1과 temp2를 더한 값을 누적해가는 방식으로 반복하고, 최종적으로 result 값을 출력한다.