문제
세 줄로 데이터가 주어진다.
각 줄은 시험장의 개수 (n), 각 시험장의 응시자 수 (a), 총 감독관 역량(b), 부 감독관 역량(c)를 의미한다.
- b와 c는 감독 가능한 응시자 수를 의미한다.
총감독관은 각 시험장에 최소 한 명 들어가야 하며, 부 감독관은 여러 명이 들어가도 된다.
이 때, 모든 응시자를 감독하기 위한 감독관의 수를 구해야 한다.
알고리즘
1. 시험장에는 최소 한 명의 총 감독관이 들어가야 한다. 따라서 각 시험장의 응시자 수에서 b를 뺀다.
(1) n - b <= 0인 경우에는 정답으로 제출할 총 감독관 수에 1을 더한다.
한 명의 총 감독관이 모든 응시자를 감독할 수 있으므로, 부 감독관이 필요없기 때문이다.
(2) n - b > 0인 경우에는 2번으로 넘어간다.
2. n - b를 한 값에 부 감독관의 역량인 c를 나누어 준다.
(1) 나머지가 있는 경우에는 정답으로 제출할 총 감독관 수에 3을 더해준다.
- 총 감독관 1명 + 부 감독관 2명
(2) 나머지가 없는 경우에는 정답으로 제출할 총 감독관 수에 2를 더해준다.
- 총 감독관 1명 + 부 감독관 1명
코드
import sys
# sys.stdin = open("C:/Users/JIn/PycharmProjects/coding_Test/input.txt", "rt")
n = int(input())
a_list = list(map(int, input().split()))
b, c = map(int, input().split())
cnt = 0
for i in range(n):
tmp = a_list[i] - b
if tmp <= 0:
cnt += 1
else:
q, r = divmod(tmp, c)
if r == 0:
cnt += (q + 1)
else:
cnt += (q + 2)
print(cnt)
'코딩 테스트' 카테고리의 다른 글
[백준 5014] 스타트링크 (0) | 2021.02.28 |
---|---|
[백준 11508] 2+1 세일 (0) | 2021.02.28 |
[프로그래머스] 위장 (0) | 2021.02.22 |
[14938 백준] 서강그라운드 - 다익스트라 알고리즘 (0) | 2021.02.17 |
[백준 10775] 공항 - 유니온파인드(union-find) 문제 (0) | 2021.02.16 |