Post

[백준] 13458 시험감독 - 왜 틀렸다고 나오지?

[백준] 13458 - 시험감독

문제 링크 : 13458 - 시험감독

시간 제한메모리 제한제출정답맞힌 사람정답 비율
2초(추가 시간 없음)512 MB91599281372076929.177%

💡 내가 푼 코드

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
N = int(input())
A = list(map(int, input().split()))
B, C = map(int, input().split())

answer = 0

for student in A:
    student -= B
    answer += 1

    if student%C:
        answer += student//C + 1
    else:
        answer += student//C

print(answer)
  • Test Case에 대해서 정답이 잘 나왔으나 실패로 떴다.
  • 찾아보니, 나와 같이 틀린 이유를 모르는 사람들이 많았고 반례를 찾을 수 있었다.

💡 틀린 이유

이 문제에서 총 감독관은 1명으로 무조건 존재해야 한다. 만약, 총 감독관 1명으로 모든 학생 수를 관리할 수 있다면, 부감독관은 필요가 없어진다. 이러한 경우를 나는 생각하지 못해 오류가 발생하였다.

💡 바꾼 코드

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#입력
N = int(input())
A = list(map(int, input().split()))
B, C = map(int, input().split())

answer = 0

for student in A:
    if student<B:  #총독관이 전체 학생을 관리할 수 있는 경우
        answer += 1
        continue
    else:
        student -= B
        answer += 1

        if student%C:
            answer += student//C + 1
        else:
            answer += student//C

print(answer)

결과

성공 창

This post is licensed under CC BY 4.0 by the author.