1번 문제.
https://www.acmicpc.net/problem/1417
-> 국회의원 선거
import sys
# 후보자수 등록
n = int(sys.stdin.readline())
# 후보자별 득표수 입력
votes = []
# 매수할 인간수
count = 0
# 후보자가 다솜 혼자면 당연히 당선되므로
if n <= 1:
print(0)
else:
# 나머지 후보자들의 득표수
for _ in range(n):
votes.append(int(sys.stdin.readline().strip()))
dasom = votes[0]
while dasom <= max(votes):
# 다솜이 아닌 최대득표수를 가지는 후보자의 인덱스 값을 확인
max_others = votes.index(max(votes))
# 그 인덱스의 후보자의 투표자를 한명씩 매수
votes[max_others] -= 1
dasom += 1
count += 1
print(count)
=======================================================
모든 예제 답은 나오는데, 틀렸다.
하지만,
3
99
1
1
을 입력하면 0이 나와야 하는데 1이 나와버린다.
즉, 다솜이도 max(votes)에 들어갈 수 있다는 이야기!
import sys
# 후보자수 등록
n = int(sys.stdin.readline())
# 후보자별 득표수 입력
votes = []
# 매수할 인간수
count = 0
# 후보자가 다솜 혼자면 당연히 당선되므로
if n <= 1:
print(0)
else:
# 나머지 후보자들의 득표수
for _ in range(n):
votes.append(int(sys.stdin.readline().strip()))
dasom = votes[0]
while dasom <= max(votes):
# 다솜이 아닌 최대득표수를 가지는 후보자의 인덱스 값을 확인
# 다솜이를 제외하고 그 수에서 최대값을 구해야한다.
max_others = votes.index(max(votes[1:]))
# 그 인덱스의 후보자의 투표자를 한명씩 매수
votes[max_others] -= 1
dasom += 1
count += 1
print(count)
=======================================================
오늘은 여기까지