Search
Duplicate

연속 펄스 부분 수열의 합

문제 설명 및 제한사항

아이디어 및 해결 방법

코드

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