코딩딩딩

(python) 백준 1912 - 연속합 본문

백준

(python) 백준 1912 - 연속합

komizke 2023. 1. 28. 19:00

백준 1912

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

 

1912번: 연속합

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

www.acmicpc.net

 

1. 문제 설명

 

입력받은 수열에 대하여 연속된 수들의 합중에서 최댓값을 구하는 문제

 

2. 문제 풀이

 

첫번째 수부터 시작하여 연속된 수들의 합을 계산하면서 최댓값인 경우 그 수열을 업데이트한다.

 

예를 들면, '첫번째 원소와 두번째 원소를 더한 값''첫번째 원소'를 비교하여

더 큰 수두번째 수로 업데이트한다.

 

이 과정을 수열의 크기만큼 반복하는 것이다.

 

for i in range(1, n):	#연속된 수 최대값 갱신
    number_list[i] = max(number_list[i], number_list[i] + number_list[i - 1])

 

3. 전체 코드

 

n = int(input())

number_list = list(map(int, input().split()))	#수열 구성

for i in range(1, n):	#연속된 수 최대값 갱신
    number_list[i] = max(number_list[i], number_list[i] + number_list[i - 1])

print(max(number_list))	#결과값 출력

'백준' 카테고리의 다른 글

(python) 백준 2606 - 바이러스 (DFS활용)  (0) 2023.01.31
(python) 백준 2292 - 벌집  (0) 2023.01.30
(python) 백준 1759 - 암호 만들기  (1) 2023.01.25
(python) 백준 6603 - 로또  (0) 2023.01.23
(python) 백준 1546 - 평균  (0) 2023.01.21
Comments