본문 바로가기

알고리즘/python

[python/파이썬] 백준 1417 국회의원 선거

반응형

[문제 출처]

https://www.acmicpc.net/problem/1417

 

1417번: 국회의원 선거

첫째 줄에 후보의 수 N이 주어진다. 둘째 줄부터 차례대로 기호 1번을 찍으려고 하는 사람의 수, 기호 2번을 찍으려고 하는 수, 이렇게 총 N개의 줄에 걸쳐 입력이 들어온다. N은 50보다 작거나 같

www.acmicpc.net

 

[문제 풀이]

 

국회의원 선거에서 사람들이 누굴 뽑을지 알 수 있다면, 다솜이가 당선되기 위해서 몇 명의 마음을 돌려야 하는지를 구하는 문제이다.

입력으로 후보의 수와 각 후보의 득표 예정 수가 주어진다.

다솜이는 1번 후보이며, 다른 사람들로부터 몇 표를 가져와야 당선될지 구해야 한다.

 

while문으로 다솜이의 득표수가 가장 많은지 확인하고 그렇지 않다면, 가장 많은 표를 가져간 사람의 표를 가져온다.

만일 후보가 1명(다솜)이라면 무조건 당선이므로 0이 출력되며 그렇지 않은 나머지 경우에는 다솜이가 가져와야 할 표의 수를 출력한다.

#1417

n = int(input())
dasom = int(input())

if n == 1:
  print(0)
else:

  others = []
  for _ in range(n-1):
    others.append(int(input()))

  cnt = 0
  while True:
    if dasom > max(others):
      break

    others[others.index(max(others))] -= 1
    dasom += 1
    cnt += 1

  print(cnt)
반응형