[백준] 1417번 국회의원 선거

거북이·2023년 1월 7일
0

백준[실버5]

목록 보기
66/114
post-thumbnail

💡문제접근

처음에 작성했던 코드로 제출을 했더니 93%에서 ValueError가 출력되었는데 하나의 반례가 존재하기 때문에 발생하는 오류였다.
만약 다솜이 혼자 단독 입후자의 경우 매수해야할 후보자의 표가 존재하지 않기 때문에 이 부분에 대한 오류를 처리해줬더니 정답으로 출력되었다.

다솜이를 제외한 다른 후보자들끼리 내림차순 정렬한 리스트를 새로 만들어 한 표씩 매수하고 그 다음 다시 내림차순 정렬하여 조건을 만족시킬 때까지 표를 매수하는 과정을 반복했다.

💡코드(메모리 : 30748KB, 시간 : 36ms)

N = int(input())
vote = []
for _ in range(N):
    vote.append(int(input()))

buying = 0
candidate = sorted(vote[1:], reverse=True)
while True:
    if len(candidate) == 0:
        break
    if max(candidate) < vote[0]:
        break
    else:
        candidate[0] -= 1
        vote[0] += 1
        buying += 1
        candidate.sort(reverse=True)
print(buying)

💡소요시간 : 18m

0개의 댓글