코딩 공부/Leetcode

[Python] 1800. Maximum Ascending Subarray Sum

일하는 공학도 2025. 2. 4. 10:11
728x90

난이도 : easy(라고 하기엔 좀 어려웠던거같은데..)

 

nums 내 subarray 중, 요소가 순차적으로 증가하는 경우의 sum값의 max를 return하는 문제

 

class Solution:
    def maxAscendingSum(self, nums: List[int]) -> int:
        max_sum = float('-inf')
        current_sum = nums[0]
        
        for i in range(1, len(nums)):
            if nums[i] > nums[i-1]:
                current_sum += nums[i]
            else:
                max_sum = max(max_sum, current_sum)
                current_sum = nums[i]
        
        max_sum = max(max_sum, current_sum)
        
        return max(max_sum, max(nums)) if nums else 0
  1. float('-inf')로 음의 무한대 setting
  2. 현재 요소가 이전 요소보다 크면 current_sum에 추가, 그렇지 않으면 max_sum을 update하고 current_sum을 현재 요소로 초기화
  3. current_sum과 max_sum을 비교하여 max_sum을 결정
  4. max_sum과 nums의 최대값을 또 비교, 만약 nums가 비어있다면 0 return

Runtime : 0ms

Memory : 17.74MB (44.25%)

728x90