Leetcode - 2099. Find Subsequence of Length K With the Largest Sum

Doyeon Kim·2022년 7월 1일

코딩테스트 공부

목록 보기
88/171

문제 링크 : https://leetcode.com/problems/find-subsequence-of-length-k-with-the-largest-sum/


주어진 배열에서 k 개의 subsequece 중에서 그 합이 가장 큰 조합을 출력하라. 기존 배열의 순서가 바뀌면 안됨.

기존의 배열 순서를 유지한채로 반환하는 조건이 까다로웠던 문제였다.
이 조건만 단순히 정렬을 이용하여 풀 수 있었을텐데..

class Solution:
    def maxSubsequence(self, nums: List[int], k: int) -> List[int]:
        ans , fornums = [], sorted(nums, reverse=True)[:k]
        for i in nums:
            if i in fornums:
                ans.append(i)
                fornums.remove(i)
                if len(fornums) == 0:
                    return ans

위에 언급한 조건은 기존의 nums와 비교하는 방법으로 풀 수 있다.

Runtime: 102 ms, faster than 41.50% of Python3 online submissions for Find Subsequence of Length K With the Largest Sum.
Memory Usage: 14.1 MB, less than 94.06% of Python3 online submissions for Find Subsequence of Length K With the Largest Sum.


22.09.08

다시 복습

fornums에 nums의 숫자들을 내림차순 정렬한 뒤 k개수만큼 넣어두고
Ex. nums = [3,4,3,3] 면
fornums에는 [4, 3]가 있음

그리고 nums를 탐색하며
탐색하는 숫자가 fornums에 있다면 해당 숫자를 결과값(ans)에 넣어주고 중복 방지를 위해 fornums에 있는 숫자들은 없애준다

그리고 ans에 들어있는 값들을 반환한다

profile
성장하고 도전하는 개발자. 프로그래밍 좋아하세요?

0개의 댓글