diff --git "a/leetcode3/\354\265\234\354\233\220\354\244\200/857. Minimum Cost to Hire K Workers.py" "b/leetcode3/\354\265\234\354\233\220\354\244\200/857. Minimum Cost to Hire K Workers.py" new file mode 100644 index 00000000..8188c85f --- /dev/null +++ "b/leetcode3/\354\265\234\354\233\220\354\244\200/857. Minimum Cost to Hire K Workers.py" @@ -0,0 +1,33 @@ +import heapq + + +class Solution: + def mincostToHireWorkers( + self, + quality: list[int], + wage: list[int], + k: int + ) -> float: + workers = [] + + for q, w in zip(quality, wage): + workers.append((w / q, q)) + + workers.sort() + + heap = [] + quality_sum = 0 + ans = float("inf") + + for ratio, q in workers: + heapq.heappush(heap, -q) + quality_sum += q + + if len(heap) > k: + max_quality = -heapq.heappop(heap) + quality_sum -= max_quality + + if len(heap) == k: + ans = min(ans, ratio * quality_sum) + + return ans diff --git a/leetcode3/935. Knight Dialer.py "b/leetcode3/\354\265\234\354\233\220\354\244\200/935. Knight Dialer.py" similarity index 100% rename from leetcode3/935. Knight Dialer.py rename to "leetcode3/\354\265\234\354\233\220\354\244\200/935. Knight Dialer.py"