사실 반례를 아무리 찾아 넣어 봐도 왜 틀린지 모르겠는 코드이다. 틀린 이유를 찾지 못했지만 결국 이건 엎고 다시 코드를 짰다. (반례 발견하시면 댓글로 알려주세요😥)
other_candidates = int(input()) - 1
dasom = int(input())
max_candidate = 0
answer = 0
for cnt in range(other_candidates):
candidate = int(input())
while candidate > dasom:
candidate -= 1
dasom += 1
answer += 1
if max_candidate < candidate:
max_candidate = candidate
if dasom == max_candidate:
answer += 1
print(answer)
n = int(input())
dasom = int(input())
candidates = [int(input()) for _ in range(n-1)]
answer = 0
if candidates:
while dasom <= max(candidates):
candidates[candidates.index(max(candidates))] -= 1
dasom += 1
answer += 1
print(answer)
for _ in range(n)
: 원래 알았는데 까먹었었다.
반례가 아주 많은 문제였다. 순차적으로 구현하면 예외처리가 아주 까다롭기 때문에 최댓값으로 비교하여 푸는 것이 가장 깔끔한 걸로!
결국 예외처리를 빡세게 하는 것보단, 자꾸 오류가 나면 접근 방식을 바꾸자.