CK week4 day4

BnDC·2021년 10월 14일
0

code Kata

목록 보기
19/22

🧨 문제

숫자로 이루어진 리스트 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)




📍 step 1

계산 결과를 담을 set result를 만든다.

def maxSubArray(nums):

#step1
    result = set()




📍 step 2

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의 가장 큰 값을 반환 한다.

profile
“Life is C (Choice) between B (Birth) and D (Death).” - 인생은 B와 D사이의 C

0개의 댓글