티스토리 뷰

1. 문제
총 N개의 시험장이 있고, 각각의 시험장마다 응시자들이 있다. i번 시험장에 있는 응시자의 수는 Ai명이다.
감독관은 총감독관과 부감독관으로 두 종류가 있다. 총감독관은 한 시험장에서 감시할 수 있는 응시자의 수가 B명이고, 부감독관은 한 시험장에서 감시할 수 있는 응시자의 수가 C명이다.
각각의 시험장에 총감독관은 오직 1명만 있어야 하고, 부감독관은 여러 명 있어도 된다.
각 시험장마다 응시생들을 모두 감시해야 한다. 이때, 필요한 감독관 수의 최솟값을 구하는 프로그램을 작성하시오.
2. 입력
첫째 줄에 시험장의 개수 N(1 ≤ N ≤ 1,000,000)이 주어진다.
둘째 줄에는 각 시험장에 있는 응시자의 수 Ai (1 ≤ Ai ≤ 1,000,000)가 주어진다.
셋째 줄에는 B와 C가 주어진다. (1 ≤ B, C ≤ 1,000,000)
3. 출력
각 시험장마다 응시생을 모두 감독하기 위해 필요한 감독관의 최소 수를 출력한다.
4. 풀이
모든 시험장에는 총감독관 1명을 반드시 배치해야 하며, 이 총감독관은 지정된 수의 인원만 감시할 수 있다.
먼저 각 시험장의 응시자 수에서 총감독관이 감시 가능한 인원을 차감하고, 총감독관 1명을 카운트한다.
남은 인원은 부감독관이 감시해야 하며, 이때는 다음과 같이 계산한다:
- 남은 인원 // 부감독관 감시 인원: 필요한 부감독관 수
- 남은 인원 % 부감독관 감시 인원: 나머지가 존재하면 부감독관 1명을 추가로 더 배치해야 합니다.
이를 모든 시험장에 대해 반복하여 총 필요한 감독관 수를 계산한다.
5. 구현코드
n = int(input())
A = list(map(int,input().split()))
super1, super2 = map(int,input().split())
count = 0 # 필요한 감독관 수
for a in A:
a -= super1 # 총감독관 1명이 반드시 감시 (한 시험장당 1명만 가능)
count += 1 # 총감독관 1명 사용
if a>0:
# 부감독관이 감시해야 할 남은 인원에 대해 필요한 수 계산
if a % super2: # 부감독관이 감시해야 할 남은 인원에 대해 필요한 수 계산
count += (a//super2)+1
else:
count += (a//super2)
print(count)'알고리즘 > 백준 문제 풀이' 카테고리의 다른 글
| [백준/BOJ] 20057: 마법사 상어와 토네이도 (Python 파이썬) (2) | 2025.08.13 |
|---|---|
| [백준/BOJ] 20056: 마법사 상어와 파이어볼 (Python 파이썬) (4) | 2025.08.08 |
| [백준/BOJ] 20055: 컨베이어 벨트 위의 로봇 (Python 파이썬) (2) | 2025.08.06 |
| [백준/BOJ] 19238: 스타트 택시 (Python 파이썬) (3) | 2025.08.05 |
| [백준/BOJ] 3190: 뱀 (Python 파이썬) (5) | 2025.08.05 |
- Total
- Today
- Yesterday
- 강의노트 정리
- sorted
- 앤드류응
- ML Process
- baekjoon
- 강화학습
- python
- Sort
- NumPy
- 경사하강법
- *
- ML 프로세스
- 파이썬
- Action spaces
- 머신러닝
- ML 종류
- ndarray
- 딥러닝
- **
- 클래스 총 정리
- ML
- Andrew Ng
- cnn
- 비용함수
- 백준
- **kwargs
- 손실함수
- 숏코딩
- 로지스틱 회귀
- *args
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | 7 |
| 8 | 9 | 10 | 11 | 12 | 13 | 14 |
| 15 | 16 | 17 | 18 | 19 | 20 | 21 |
| 22 | 23 | 24 | 25 | 26 | 27 | 28 |
