BOJ - 1417

주의·2024년 1월 14일
0

boj

목록 보기
65/214

백준 문제 링크
국회의원 선거

❓접근법

  1. 다솜이의 득표수 dasom과 다른 후보의 득표수 리스트인 data를 만든다.
  2. data를 내림차순으로 정렬한다.
  3. 조건은 다음과 같다.
  • 만약 N이 1명, 즉 다솜이 혼자 출마했다면 0을 반환한다.
  • 그렇지 않다면, dasom과 data[0]를 비교해가며,
    data[0]가 더 크거나 같을 때 data[0] -= 1, dasom += 1,
    answer += 1(매수해야 하는 사람의 수), data.sort(reverse = True) 해준다.
    여기서 내림차순 정렬해야하는 이유는
    dasom = 5, data = [10,8,7,3]일 때
    1) dasom = 6, data = [9,8,7,3] 정렬 후 [9,8,7,3]
    2) dasom = 7, data = [8,8,7,3] 정렬 후 [8,8,7,3]
    3) dasom = 8, data = [7,8,7,3] 정렬 후 [8,7,7,3]
    4) dasom = 9, data = [7,7,7,3] 정렬 후 [7,7,7,3] while 문 중단
    answer를 반환하면 끝

👌🏻코드

N = int(input())
dasom = int(input())
data = []

for _ in range(N-1):
    data.append(int(input()))
data.sort(reverse = True)


answer = 0

if N == 1:
    print(0)
else:
    while data[0] >= dasom:
        data[0] -= 1
        dasom += 1
        answer += 1
        data.sort(reverse = True)
        
    print(answer)

0개의 댓글