선릉역 1번 출구
baekjoon - 1912 본문
problem. n개의 정수로 이루어진 임의의 수열이 주어짐 -> 연속된 수들의 합의 최댓값을 찾는 것
key point
10 | -4 | 3 | -7 | 2 |
10 | 6 | 9 | 2 | 4 |
import sys n = int(input()) dp = list(map(int, sys.stdin.readline().split())) for i in range(1, n): if dp[i] < dp[i-1] + dp[i]: dp[i] = dp[i - 1] + dp[i] print(max(dp)) |
dp[i]: i까지 더한 값의 최댓값(dp[i-1] + dp[i] > dp[i]라면 dp[i-1]는 양수이기 때문에 연속하는 것이 맞고, 그 반대는 음수이기 때문에 dp[i]를 최댓값으로 취하는 것이 맞다.
'Algorithm > Algorithm 문제풀이' 카테고리의 다른 글
baekjoon - 14467 (0) | 2021.10.03 |
---|---|
baekjoon - 15500 (0) | 2021.10.03 |
baekjoon - 14002 (0) | 2021.09.16 |
baekjoon - 11053 (0) | 2021.09.15 |
baekjoon - 2193 (0) | 2021.09.13 |
Comments