[백준] 13458 시험감독 - 왜 틀렸다고 나오지?
[백준] 13458 - 시험감독
문제 링크 : 13458 - 시험감독
시간 제한 | 메모리 제한 | 제출 | 정답 | 맞힌 사람 | 정답 비율 |
---|---|---|---|---|---|
2초(추가 시간 없음) | 512 MB | 91599 | 28137 | 20769 | 29.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.