백준 1417번 국회의원선거 python

hyewon9913·2023년 11월 15일

코딩테스트(python)

목록 보기
8/46
n = int(input())

n_list = []
for i in range(n):
    tmp = int(input())
    n_list.append(tmp)

ans = 0
max_index = 0
for i in range(n):
    if n_list[i]>=n_list[max_index]:
        max_index = i

while (max_index!=0):
    ans+=1
    n_list[max_index] -=1
    n_list[0]+=1
    for i in range(n):
        if n_list[i]>=n_list[max_index]:
            max_index = i

print(ans)

처음에는 max(n_list) 를 이용해 해당 값의 인덱스가 다솜이의 인덱스가 될 때까지 while문을 반복하는 형식으로 하려 했다.

그런데 4 10 10 10 10 이런 형식으로 다른 후보자와 투표수가 같을때에는 max() 를 하게되면 앞에오는 인덱스값이 max_index가 되는 문제가 발생했다.

그래서 max_index를 그때마다 for문을 통해 구하며 같거나 클 때 max_index를 변경해주어 다솜이와 같은 득표수를 가진 후보자가 있다면 max_index가 다솜이의 index가 되지 않도록 해주었다.

profile
차근차근 굴러가는 코딩일지

0개의 댓글