숫자로 이루어진 리스트 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의 가장 큰 값을 반환 한다.