Python으로 구현한 1417번 국회의원 선거 문제 풀이입니다.
https://www.acmicpc.net/problem/1417
n = int(input())
dasom = int(input())
if n <= 1 :
print(0)
else :
others = []
for _ in range(n-1) :
others.append(int(input()))
result = 0
while max(others) >= dasom :
data = others.index(max(others))
dasom += 1
others[data] -=1
result += 1
print(result)
1. n과 다솜이의 득표수를 입력받은 후, 입력받은 n이 1 이하일 경우 0을 출력한다.
2. 1 이상일 경우 다솜이의 득표수는 이미 입력받았기 때문에 n-1명만큼의 각 득표수를 입력받아 others리스트에 추가한다.
3. 다솜이의 득표수가 최대값이 될 때까지 while문을 통해 반복수행한다.
4. 반복문 내부에서는 others리스트 중 최대값을 가지는 인덱스를 구하고 해당 인덱스의 득표수를 다솜이에게 준다. 그 후 result를 1 증가시킨다.
5. 반복문이 끝나면 최종적으로 result 값을 출력한다.
'백준(Python) 풀이 > 그리디 알고리즘' 카테고리의 다른 글
백준(Python) 12782번 비트 우정지수 풀이 (0) | 2021.12.14 |
---|---|
백준(Python) 17521번 Byte Coin 풀이 (0) | 2021.12.14 |
백준(Python) 19939번 박 터뜨리기 풀이 (0) | 2021.12.14 |
백준(Python) 16435번 스네이크버드 풀이 (0) | 2021.12.14 |
백준(Python) 9237번 이장님 초대 풀이 (0) | 2021.12.14 |