500error
[COS Pro 2급, Python] 4차 8번 : 누가 반장이 될까요? 본문
반응형
문제
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 함수를 작성했습니다. 그러나, 코드 일부분이 잘못되어있기 때문에, 몇몇 입력에 대해서는 올바르게 작동하지 않습니다. 주어진 코드에서 한 줄만 변경해서 모든 입력에 대해 올바르게 동작하도록 수정하세요.
code
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
n1 = 3
votes1 = [1, 2, 1, 3, 1, 2, 1]
ret1 = solution(n1, votes1)
print("solution 함수의 반환 값은", ret1, "입니다.")
n2 = 2
votes2 = [2, 1, 2, 1, 2, 2, 1]
ret2 = solution(n2, votes2)
print("solution 함수의 반환 값은", ret2, "입니다.")
반응형
'알고리즘 > 파이썬' 카테고리의 다른 글
[COS Pro 2급, Python] 4차 10번 : XX시험 합격자 수 구하기 (0) | 2024.01.04 |
---|---|
[COS Pro 2급, Python] 4차 9번 : 위험한 지역 몇개인지 알려주기 (0) | 2024.01.04 |
[COS Pro 2급, Python] 4차 7번 : 오른 점수와 떨어진 점수 구하기 (0) | 2024.01.04 |
[COS Pro 2급, Python] 4차 6번 : 열심히 모은 point, 돌려드립니다 (0) | 2024.01.04 |
[COS Pro 2급, Python] 4차 5번 : A씨의 추가 운동 여부 알려주기 (1) | 2024.01.04 |
Comments