숫자로 이루어진 리스트 nums
가 입력으로 들어온다. nums
의 일부 연속적인 요소를 더했을 때, 가장 큰 값을 찾아 return
하는 함수를 만들어라.
Input: [-2,1,-3,4,-1,2,1,-5,4] Output: 6
def maxSubArray(nums):
#step1
result = set()
#step2
while nums:
if nums[0] >= 0:
for i in range(len(nums), 0, -1):
result.add(sum(nums[:i]))
nums = nums[1:]
return max(result)
계산 결과를 담을 set result
를 만든다.
def maxSubArray(nums):
#step1
result = set()
def maxSubArray(nums):
#... ...#
#step2
while nums:
if nums[0] >= 0:
for i in range(len(nums), 0, -1):
result.add(sum(nums[:i]))
nums = nums[1:]
return max(result)
반복문을 통해 nums
가 빈 리스트가 될 때까지
nums
의 첫번째 요소를 제거한 부분 리스트를 nums
로 초기화 한다.
만약 nums
의 첫번째 요소가 0
보다 크거나 같다면 nums
의 부분 리스트들의 합을 result
에 저장 한다.
그렇게 구한 result
의 가장 큰 값을 반환 한다.