자료구조 및 알고리즘/백준

[python] 1912. 연속합

viamemine 2023. 3. 1. 22:47
728x90
반응형
  • 문제


 

 

 

  • 올바른 풀이
n = int(input())
num_list = list(map(int, input().split()))

for i in range(1, n):
    num_list[i] = max(num_list[i-1] + num_list[i], num_list[i])
print(max(num_list))

 

해당 문제는 다이나믹 프로그래밍으로 해결할 수 있다.

최댓값을 구하기 위한 풀이방법은 다음과 같다. 

i번째까지의 수를 더한 값보다 i번째 값이 크면 그 이전 값은 무시한다.

 

즉, i번째까지의 누적값이 i번째보다 작으면 계속해서 더해가지만

i번째 값이 크면 누적값을 무시하고 i번째부터 다시 값을 더해간다고 이해하면 될 것 같다.

 

 

 

 

 

728x90

'자료구조 및 알고리즘 > 백준' 카테고리의 다른 글

[python] 2798. 블랙잭  (0) 2023.07.25
[python] 1149. RGB거리  (0) 2023.03.02
[python] 1904. 01타일  (0) 2023.02.20
[python] 9184. 신나는 함수 실행  (0) 2023.02.17
[python] 1004. 어린왕자  (0) 2023.02.12