[LeetCode_2542] Maximum Subsequence Score

그냥·2024년 10월 18일
0

알고리즘

목록 보기
23/23

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에 제일 처음 들어오는 값을 빼주는 것이 아니라 최소값을 빼주는 거지? ...

0개의 댓글