https://leetcode.com/problems/maximum-subsequence-score/description/?envType=study-plan-v2&envId=leetcode-75
문제

코드1
class Solution:
def maxScore(self, nums1: List[int], nums2: List[int], k: int) -> int:
n = sorted(zip(nums2, nums1), reverse=True)
ans = 0
tmp = 0
q = []
for n2, n1 in n:
heapq.heappush(q, n1)
tmp += n1
if len(q) > k:
tmp -= heapq.heappop(q)
if len(q) == k:
ans = max(ans, tmp * n2)
return ans
Idea 1
if len(q) > k:
tmp -= heapq.heappop(q)
이 코드가 이해가 안감
-> n1값이 순서대로 더해질 때 q의 범위가 k를 벗어나는 경우 q에 제일 처음 들어오는 값을 빼주는 것이 아니라 최소값을 빼주는 거지? ...