1800. Maximum Ascending Subarray Sum
LeetCode
https://leetcode.com/problems/maximum-ascending-subarray-sum/
문제
- 양의 정수 배열 nums가 주어졌습니다.
- 부분 배열은 nums 내의 연속된 요소를 의미하며 길이가 1인 배열도 오름차순 부분 배열로 간주합니다.
- 오름차순으로 정렬된 부분 배열의 요소 합 중 최댓값을 반환하는 코드를 작성하세요.
예제
- Input: nums = [10, 20, 30, 5, 10, 50]
- Output: 65
풀이 과정
- 주어진 양의 정수 배열 nums의 첫 번째 요소를 변수 answer와 sum_에 각각 저장합니다.
- 인덱스 i를 사용하여 nums의 두 번째 요소부터 순회하며 다음 조건을 수행합니다.
- 현재 요소(nums[i])가 이전 요소(nums[i-1])보다 크면 sum_에 현재 요소를 더해줍니다.
- 그렇지 않으면 sum_을 현재 요소로 수정합니다.
- answer를 answer와 sum_ 중 큰 값으로 수정합니다.
- 최종적으로 오름차순 정렬된 부분 배열의 요소 합 중 최댓값을 담은 answer를 반환합니다.
코드(Python)
class Solution:
def maxAscendingSum(self, nums: List[int]) -> int:
answer = nums[0]
sum_ = nums[0]
for i in range(1, len(nums)):
if nums[i-1] < nums[i]:
sum_ += nums[i]
else:
sum_ = nums[i]
answer = max(answer, sum_)
return answer
참고
- max(객체) : 주어진 객체 중 가장 큰 값 반환
'알고리즘 스터디 > Python' 카테고리의 다른 글
| [LeetCode] 3178. Find the Child Who Has the Ball After K Seconds (0) | 2024.09.10 |
|---|---|
| [LeetCode] 3280. Convert Date to Binary (0) | 2024.09.10 |
| [LeetCode] 2119. A Number After a Double Reversal (0) | 2024.09.09 |
| [LeetCode] 1309. Decrypt String from Alphabet to Integer Mapping (0) | 2024.09.06 |
| [LeetCode] 2586. Count the Number of Vowel Strings in Range (0) | 2024.09.06 |