숫자로 이루어진 리스트 nums를 인자로 주면,
그 안에서 어떤 연속적인 요소를 더했을 때 가장 큰 값이 나오나요?
가장 큰 값을 찾아 return해주세요.
nums = [-2,1,-3,4,-1,2,1,-5,4]
def maxSubArray(nums):
max = 0
start_idx = 0
end_idx = 0
for i in range(len(nums)):
sum = 0
for j in range(i, len(nums)):
sum += nums[j]
if max < sum:
max = sum
start_idx = i
end_idx = j
return f"max: {max} start_idx: {start_idx} end_idx: {end_idx}"
result = maxSubArray(nums)
print(result)
결과
max: 6 start_idx: 3 end_idx: 6
이중 for문을 돌면서 최대값을 업데이트 하는 형식으로 구현했다.
처음 for문에서는 요소를 순서대로 접근하는 코드이며,
두번째 for문은 첫번째 for문의 i에 해당하는 위치부터 해서 더해나가는 형식으로 코드를 구현했다.