[BOJ][Python][실1][1912] 연속합
문제 링크
첫 번째 풀이
정답 코드
dp[i] = i번째까지 확인했을 때의 정답
이 외의 조건은 모두 아래 코드에서 정의한 그대로 입니다. 주의할 점은 if문 안에서 ans = max(ans,dp[i])를 하면 아래의 경우를 커버할 수 없다는 점입니다.
1
2
3
4
5
-5 -4 -3 -2 -1
틀린답 : -5
정답 : -1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
import sys
from math import sqrt, ceil
from bisect import bisect_left, bisect_right
from operator import itemgetter
# sys.stdin = open("input.txt", "r")
n = int(input())
# R, C, K = n, 2, 1
# dp = [[0] * C for _ in range(R)]
# dp = [[[0] * K for _ in range(C)] for _ in range(R)]
# MOD = 1000000000
arr = (list(map(int, sys.stdin.readline().split())))
dp = [0] * n
dp[0] = arr[0]
ans = dp[0]
for i in range(1, n):
dp[i] = arr[i]
if dp[i - 1] + arr[i] > dp[i]:
dp[i] += dp[i - 1]
ans = max(ans, dp[i])
print(ans)
Success Notice: 수고하셨습니다.
Leave a comment