[백준/파이썬] 1912번 연속합 풀이

업데이트:



문제 정보


풀이

문제

정수 수열에서 연속된 부분수열의 합 중 최댓값을 구하는 문제입니다.

코드

n = int(input())
a = list(map(int, input().split()))
m = [a[0]]
for i in range(1, n):
    m.append(max(m[i-1]+a[i], a[i]))
print(max(m))

설명

m[i]i에서 끝나는 최대 연속합으로 정의합니다.

  • 이전 연속합에 현재 값을 붙이는 경우
  • 현재 값부터 새로 시작하는 경우

둘 중 큰 값을 채우면 되고, 전체 m의 최댓값이 정답입니다.



댓글남기기