[백준/파이썬] 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의 최댓값이 정답입니다.



이런 주제는 어떠신가요?

비슷한 난이도와 유형의 문제를 이어서 보면 풀이 감각을 더 빠르게 잡기 좋습니다.

댓글남기기