본문 바로가기

코딩/Python

[Python] 백준 1912 연속합

반응형

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

 

1912번: 연속합

첫째 줄에 정수 n(1 ≤ n ≤ 100,000)이 주어지고 둘째 줄에는 n개의 정수로 이루어진 수열이 주어진다. 수는 -1,000보다 크거나 같고, 1,000보다 작거나 같은 정수이다.

www.acmicpc.net

코드 작성

n = int(input())
k = list(map(int, input().split()))
ans = [k[0]]
for i in range(1,n):
    ans.append(max(ans[i-1]+k[i],k[i]))
print(max(ans))

코드  풀이

#문제 이해

인덱스 0부터 i까지의 합이 큰 지, 또는 i의 값이 큰 지를 비교하는 문제이다.

물론 문제에서는 중간 값 중에서 여러 개를 요구하지만, 코드작성은 max(ans[i-1] + k[i], k[i])로 나타낸다.

초기값 k[0]은 정해졌으므로, k[1]부터 구해야 하니 range의 범위는 1부터 n까지 된다.

반응형

'코딩 > Python' 카테고리의 다른 글

[Python] 백준 2798 블랙잭  (0) 2022.12.07
[Python] 백준 7568 덩치  (1) 2022.12.07
[Python] 백준 1550 16진수  (0) 2022.12.03
[Python] 백준 15990 1,2,3더하기5  (0) 2022.12.01
[Python] 백준 4344 평균은 넘겠지  (0) 2022.12.01