[COS PRO 1급] 1차 문제8) 누가 당선 되나요

아현·2023년 8월 1일
0

Algorithm

목록 보기
373/400

연습문제

누가 당선 되나요


□ 문제설명

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

profile
Studying Computer Science

1개의 댓글

comment-user-thumbnail
2023년 8월 1일

개발자로서 성장하는 데 큰 도움이 된 글이었습니다. 감사합니다.

답글 달기