-
[백준] 1912번 문제 (연속합) 파이썬(Python) 풀이Problem Solving/Baekjoon 2021. 8. 19. 16:26
n = int(input()) nums = list(map(int, input().split())) dp = [nums[0]] for i in range(len(nums) - 1): dp.append(max(dp[i] + nums[i + 1], nums[i + 1])) print(max(dp))
연속된 숫자의 합 중 가장 큰 합을 구하는 문제이다.
풀이는 dp에 max(dp[i] + nums[i + 1], nums[i + 1]) 를 추가해가며 dp 중에 가장 큰 값을 출력하면 된다.
연속된 숫자가 더 크면 dp[i] + nums[i + 1]을 dp에 추가할 것이고, 그렇지 않으면 nums[i + 1]이 추가될 것이다.
'Problem Solving > Baekjoon' 카테고리의 다른 글
[백준] 2193번 문제 (이친수) 파이썬(Python) 풀이 (0) 2021.08.20 [백준] 2133번 문제 (타일 채우기) 파이썬(Python) 풀이 (0) 2021.08.19 [백준] 16194번 문제 (카드 구매하기 2) 파이썬(Python) 풀이 (0) 2021.08.19 [백준] 1463번 문제 (1로 만들기) 파이썬(Python) 풀이 (2) 2021.08.19 [백준] 14002번 문제 (가장 긴 증가하는 부분 수열 4) 파이썬(Python) 풀이 (0) 2021.08.19