코딩테스트/BOJ

[백준][DP][카데인 알고리즘] 연속합

박소민 2026. 2. 19. 21:07
연속합

 

  • 첫 풀이
    • 오류 원인
    • if i == 0:
          dp[i] = max(0, numbers[i])
    • -5 -2 -3 일때 max(dp)에서 dp[0]=0 이 채택되면 없는 값이 선택 되는 것
n = int(input())
numbers = list(map(int, input().split()))
dp = numbers[:]
for i in range(n):
    if i == 0:
        dp[i] = max(0, numbers[i])
        continue
    dp[i] = max(numbers[i], dp[i-1]+numbers[i])

print(max(dp))

 

  • 내 풀이
    • 해당 위치값부터 시작하거나
    • 이전값에서 해당위치값을 더하거나
    • 2가지 경우 중 선택
n = int(input())
numbers = list(map(int, input().split()))
dp = numbers[:]
for i in range(1, n):
    dp[i] = max(numbers[i], dp[i-1]+numbers[i])

print(max(dp))

 

'코딩테스트 > BOJ' 카테고리의 다른 글

[백준][DP] RGB 거리  (0) 2026.02.16
[백준][DP] 설탕 배달  (0) 2026.02.16
[백준][이분탐색] 1654.랜선 자르기  (0) 2025.09.26
[백준][다익스트라] 1753. 최단 경로  (0) 2025.09.26
[백준][DP] 2839. 설탕 배달  (0) 2025.09.22