[COS PRO 2급-Python] 누가 반장이 될까요?
1번부터 n번까지의 후보에 대한 투표 결과가 주어질 때, 과반수를 득표한 후보자의 번호를 구하려고 합니다. 여기서 과반수란 절반이 넘는 수를 의미합니다.
예를 들어, 1번붜 3번까지의 후보에 대한 투표 결과가 [1,2,1,3,1,2,1]이라면 순서대로[1번,2번,1번,3번,1번,2번,1번]후보에 투표했음을 나타내고, 이 경우 당선된 후보자의 번호는 1번입니다.
후보의 수 n, 투표 결과가 담긴 배열 votes, votes의 길이 votes_len이 매개변수로 주어질 때, 과반수를 득표한 후보자의 번호를 return 하도록 solution 함수를 작성했습니다. 그러나, 코드 일부분이 잘못되어있기 때문에, 몇몇 입력에 대해서는 올바르게 작동하지 않습니다. 주어진 코드에서 한 줄만 변경해서 모든 입력에 대해 올바르게 동작하도록 수정하세요.
과반수를 득표한 후보자의 번호를 return 해주세요.

▶ test_count = 1 count하는 부분은 test_count += 1을 해준다.
def solution(n, votes):
answer = 0
votes_len = len(votes)
candidate = votes[0]
count = 1
for i in range (1, votes_len) :
if candidate == votes[i] :
count += 1
else :
count -= 1
if count == 0 :
candidate = votes[i]
count = 1
test_count = 0
for i in range(0, votes_len) :
if votes[i] == candidate :
test_count += 1
if test_count > votes_len // 2 :
answer = candidate
else :
answer = -1
return answer