[백준] 1912번 파이썬

Heejun Kim·2022년 6월 12일
0

Coding Test

목록 보기
34/51

문제: https://www.acmicpc.net/problem/1912

문제 해결 과정

  1. 연속된 수를 선택해 그 수들의 합이 제일 큰 경우를 찾아야 한다.
  2. 주어진 n개의 정수에 각 자리에서 생각해보면, 이전 값 또는 이전 값까지의 합과 나 자신을 더했을 때, 값이 커지는지 아닌지를 판단해 이를 테이블에 저장해주면 된다.
  3. dp 문제로 연속 합을 저장한 테이블은 dp 리스트로 선언했다.
import sys
input = sys.stdin.readline

n = int(input())
s = list(map(int, input().split()))
answer = s[0]

for i in range(1, n):
    s[i] = max(s[i], s[i-1] + s[i])
    answer = max(answer, s[i])

print(answer)

0개의 댓글