[Code Kata] 연속된 배열 중 가장 큰 값

do yeon kim·2022년 8월 28일
0

숫자로 이루어진 리스트 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에 해당하는 위치부터 해서 더해나가는 형식으로 코드를 구현했다.

0개의 댓글