반응형
1912번: 연속합
첫째 줄에 정수 n(1 ≤ n ≤ 100,000)이 주어지고 둘째 줄에는 n개의 정수로 이루어진 수열이 주어진다. 수는 -1,000보다 크거나 같고, 1,000보다 작거나 같은 정수이다.
www.acmicpc.net
코드
n = int(input())
n_list = list(map(int,input().split()))
sum = [0] * n
for i in range(n):
sum[i] = max(n_list[i], n_list[i]+sum[i-1])
print(max(sum))
설명
첫번째 숫자부터 차례대로 이전 값과 더한다.
만약 더한 값이 자기 자신보다 클 경우 sum[i]에 n_list[i]+sum[i-1]을 넣어주고 만약 자기 자신보다 작을 경우 그냥 자신의 값을 넣어준다.
sum에 들어있는 값 중에 가장 큰 값을 출력시키면 된다.
반응형
'알고리즘 > dynamic programming' 카테고리의 다른 글
[백준][Python] 15486번 퇴사 2 (0) | 2022.05.18 |
---|---|
[백준][Python] 1890번 점프 (0) | 2022.05.17 |
[백준][Python] 2407번 조합 (0) | 2022.05.13 |
[백준][Python] 11727번 2×n 타일링 2 (0) | 2022.05.12 |
[백준][Python] 11726번 2×n 타일링 (0) | 2022.05.11 |
댓글