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을 해준다.
'자기개발👨💻 > 코딩 알고리즘' 카테고리의 다른 글
[Python] 대각선으로 숫자 채우기 - 이중배열 (0) | 2023.11.29 |
---|---|
[Python] 백준 1926 그림 - bfs알고리즘 (0) | 2023.11.29 |
[Python] 지그재그로 숫자 채우기 (이중배열) (2) | 2023.11.29 |
[C++] 백준 2178 미로탐색-dfs알고리즘-최단경로 (0) | 2023.11.04 |
c++ 입출력 속도 향상 및 cin.tie 해야하는이유 (0) | 2023.11.03 |
[c++] 백준2232 벌집 c++ (0) | 2023.11.02 |