코딩테스트 파이썬/백준
국회의원 선거
세용용용용
2024. 12. 11. 16:56
나의 풀이
import sys
import heapq
def _gugu(n):
answer = 0
if (n == 1):
return 0
win_person, hq = int(sys.stdin.readline()), []
for _ in range(n-1):
heapq.heappush(hq, -1*int(sys.stdin.readline()))
while True:
if (win_person > abs(hq[0])):
break
answer += 1
win_person += 1
heapq.heappush(hq, heapq.heappop(hq)+1)
return answer
n = int(sys.stdin.readline())
print(_gugu(n))
시간 복잡도
while True : 조건 만족시 까지 순회 ( 선형 시간 복잡도 )
heapq.heappush(hq, heapq.heappop(hq)+1) : ( heapq 자료구조 로그 시간 복잡도 )
해당 알고리즘 시간 복잡도 : 선형 로그 시간 복잡도 ( O(n log n) )