문제 설명 및 제한사항
아이디어 및 해결 방법
코드
def max_slice_sum(nums):
cache = [nums[0]]
for i in range(1, len(nums)):
cache.append(max(0, cache[-1]) + nums[i])
return max(cache)
def solution(sequence):
# pulse 배열을 구성한다
pulse1, pulse2 = [1], [-1]
for i in range(1, len(sequence)):
pulse1.append(pulse1[-1] * -1)
pulse2.append(pulse2[-1] * -1)
nums1 = [num * p for num, p in zip(sequence, pulse1)]
nums2 = [num * p for num, p in zip(sequence, pulse2)]
answer = max(max_slice_sum(nums1), max_slice_sum(nums2))
return answer
Python
복사
출처
프로그래머스 코딩테스트 연습 https://school.programmers.co.kr/learn/challenges