□ 문제설명
1번부터 N번까지 후보에 대해서 투표를 진행했습니다. 예를 들어 투표 결과가 [1, 5, 4, 3, 2, 5, 2, 5, 5, 4]라면 순서대로 [1번, 5번, 4번, 3번, 2번, 5번, 2번, 5번, 5번, 4번] 후보에 투표했음을 나타냅니다. 이때, 가장 많은 표를 받은 후보의 번호를 구하려고 합니다.
주어진 solution 함수는 후보의 수 N과 투표를 진행한 결과가 담긴 배열 votes와 votes의 길이 votes_len이 매개변수로 주어졌을 때, 가장 많은 표를 받은 후보의 번호를 return 하는 함수입니다. 그러나, 코드 일부분이 잘못되어있기 때문에, 몇몇 입력에 대해서는 올바르게 동작하지 않습니다. 주어진 코드에서 한 줄만 변경해서 모든 입력에 대해 올바르게 동작하도록 수정하세요.
□ 매개변수 설명
후보의 수 N과 투표 결과가 들어있는 배열 votes와 votes의 길이 votes_len이 solution 함수의 매개변수로 주어집니다.
N은 1 이상 10 이하의 자연수입니다.
votes_len은 1 이상 100 이하의 자연수입니다.
votes의 원소는 1 이상 N이하의 자연수입니다.
□ return 값 설명
가장 많은 표를 받은 후보의 번호를 배열에 담아 return 해주세요
만약 가장 많은 표를 받은 후보가 2개 이상이라면, 그 후보들의 번호를 모두 배열에 담아 오름차순 정렬하여 return 해주세요.
def solution(N, votes):
vote_counter = [0 for i in range(N+1)]
for i in votes:
vote_counter[i] += 1
max_val = max(vote_counter)
answer = []
for idx in range(1, N + 1):
if vote_counter[idx] == max_val:
answer.append(idx)
return answer
개발자로서 성장하는 데 큰 도움이 된 글이었습니다. 감사합니다.