Posts [baekjoon] 13458. 시험감독 (python)
Post
Cancel

[baekjoon] 13458. 시험감독 (python)

13458. 시험감독 문제 바로가기

해결 방법

문제 정리

  • 필요한 감독관(총감독관, 부감독관) 수의 최솟값을 구해야 한다.

    • 총감독관

      한 시험장에 감시할 수 있는 응시자 수가 B명!

      시험장에 오직 1명만 존재!

    • 부감독관

      한 시험장에 감시할 수 있는 응시자의 수가 C명!

      시험장에 여러 명 존재 가능

구현 방법

  1. 입력을 받고 기본 설정한다.

    • 주요 변수 설명

      cnt : 출력할 정답으로 필요한 감독관의 수를 저장하는 변수이다.

      처음 초기값을 N으로 설정한다. 총감독관은 한 시험장에 오직 1명씩만 존재하기 때문에 기본적으로 총감독관의 수를 초기값으로 두고 필요한 최소한의 부감독관의 수를 더해줄 것이다.

  2. 각 시험장에 응시자의 수를 for문을 통해 살펴본다.

    • 총감독관만으로 감시가 불가능한 경우 (if people - B > 0)

      diff 에 감시가 필요한 인원을 저장하고 부감독관이 감시할 수 있는 인원 C로 나눈다.

      몫의 값을 그대로 cnt에 더해주고 나머지가 0이 아닌 경우 cnt에 1을 더해주면 된다.

구현한 코드

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
N = int(input())
candidate = list(map(int, input().split()))
B, C = map(int, input().split())
cnt = N # 각 시험장에 총감독관은 오직 1명 있어야 하는 조건

for i in range(len(candidate)):
  people = candidate[i]
  if people - B > 0: # 감시가 필요한 사람들이 있으면 부감독관 추가
    diff = people - B
    q, r = divmod(diff, C)
    cnt += q
    if r != 0:
        cnt += 1

print(cnt)
This post is licensed under CC BY 4.0 by the author.

[baekjoon] 14501. 퇴사 (python)

[baekjoon] 3190. 뱀 (python)

Comments powered by Disqus.