자기개발👨‍💻/코딩 알고리즘

[Python] 백준 13458 시험 감독

천숭이 2023. 11. 10. 00:56

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()) 
a=list(map(int,input().split()))
b,c=map(int,input().split())
 #   n-시험장개수  a-응시자의수  b-총감독관감시  c-부감독관감시

need=n
for p in a:
    p=max(p-b,0)
    if p==0:
        pass
    else:
        if p%c==0:
            need+=p//c
        else:
            need+=p//c+1
    
print(need)

p에서 총감독관이 응시하는 학생수를 무작정 빼서 p가 음수가 되어 진행되는 것을

max로 막아주었다. max를 사용함으로써 음수가 만들어질때는 0이 되고 양수로 만들어질때는 양수로 반환되어

코드가 진행된다. 

총감독관이 방에 있는 모든 응시자들을 감독이 가능하면 (p%c==0) pass

부감독관이 필요할때는 (else)는 c로 나누어 떨어질때와 나머지값이 생길때로 나누어 진행했다.

나머지 값이 생기면 반올림을 위해 몫연산 한 값에 +1을 해준다.