보물창고 블로그

백준 알고리즘 13458번 시험감독 풀이 with Python 본문

알고리즘 풀이/백준 알고리즘

백준 알고리즘 13458번 시험감독 풀이 with Python

홋 메 2020. 2. 1. 13:18
728x90

문제 링크: https://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

백준 13458번 시험감독

문제는 쉬웠으나 조건문에서 변수 하나를 잘못 적용하여 고생한 문제였다. 해결한 방식은 먼저 n에 시험장의 개수를 입력받고, test에 각 시험장 인원을 입력받고, b, c에 각각 총감독관과 부감독관이 감독할 수 있는 인원수를 입력받았다. 그리고 시험장마다 먼저 총감독관이 감독할 수 있는 인원수를 빼고 정답에 1을 더해주었다. 이후의 시험장 인원이 0보다 적거나 같으면 다음 시험장으로 넘어가고, 아니면 부감독관이 감독할 수 있는 인원수인 c로 나눠서 나머지가 0이면 나눈 몫을 더하고 나머지가 0이 아니면 몫에다 1을 더한 값을 정답에 더해주었다. 다음은 이를 구현한 코드이다.

n = int(input())
test = list(map(int, input().split()))
b, c = map(int, input().split())
answer = 0
for i in test:
    answer += 1
    i -= b
    if i <= 0:
        continue
    else:
        if i % c == 0:
            answer += i // c
            continue
        else:
            answer += (i // c) + 1
            continue

print(answer)
Comments