bumpsoo 2024-12-15 20:18:49 +09:00
parent bac9beaa68
commit 119dc4617d

View file

@ -0,0 +1,26 @@
# https://leetcode.com/problems/maximum-average-pass-ratio
from typing import List
from queue import PriorityQueue
class Solution:
def maxAverageRatio(self, classes: List[List[int]], extraStudents: int) -> float:
def to_priority(clas):
return -abs((clas[0] / clas[1]) - ((clas[0] + 1) / (clas[1] + 1)))
q = PriorityQueue()
for i in range(len(classes)):
v = to_priority(classes[i])
q.put((v, i))
for i in range(extraStudents):
(_, index) = q.get()
classes[index][0] += 1
classes[index][1] += 1
q.put((to_priority(classes[index]), index))
result = 0
for i in range(len(classes)):
result += (classes[i][0] / classes[i][1])
return result / len(classes)