백준 1417 문제


백준 1417 풀이
첫번째 후보자가 다솜이기 때문에, 따로 dasom 변수에 저장했다. 그리고 나머지 후보들은 lst 라는 리스트에 저장하였다.
while 루프를 돌면서, 다른 후보자들 중 최고 득표자의 득표수에는 -1을 하고, 다솜의 득표수는 +1을 하는 방향으로 문제를 해결했지만 문제가 또 생겼다.
바로, 다솜이만 단독 출마를 했을 상황이다. 이러면 리스트에 아무것도 없는데, max를 써서 에러가 난다. 그래서 이런 상황을 막기 위해, n(후보자 수)이 1이었을 때는, 실행을 종료하도록 수정하였다.
# 입력
n = int(input())
# 후보와 득표수 리스트
dasom = int(input()) # 다솜이 득표수
lst = [] # 나머지 득표수
for _ in range(n - 1):
lst.append(int(input()))
# 다솜이 매수한 표 수
cnt = 0
# 만약 n= 1이면 바로 종료
if n == 1:
print(0)
exit()
# 나머지 사람들 중 최고에게서, 다솜이의 득표수 에 1더하면 될듯.
while dasom <= max(lst):
lst[lst.index(max(lst))] -= 1
dasom += 1
cnt += 1
print(cnt)
No Responses