코딩 테스트/Baekjoon

S2 1912. 연속합

  • -
728x90
반응형

문제 보기 :  1912번: 연속합


문제

  • 정답률 : 37%


작성 코드

from collections import deque

n = int(input())
arr = deque(list(map(int,input().split())))
ans = [0]*n

if n >= 1:
    ans[0] = arr[0]
if n>=2:
    ans[1]=max(arr[1],ans[0]+arr[1])

for i in range(2,n):
    ans[i]=max(arr[i],ans[i-1]+arr[i])

print(max(ans))

풀이

다이나믹 프로그래밍으로 풀이하는데, 보통 DP문제는 리스트로 해결한다. 행렬이든, 1차원 리스트든..

처음엔 2개만 선택해야하는줄 알고, deque로 앞, 뒤 원소를 빼면서 계산하도록 했는데 그게 아니었다. 그래서 위와 같이 작성했고
바로 해결 완료!

320x100
728x90

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

S2 1541. 잃어버린 괄호  (0) 2024.11.04
S3 9461. 파도반 수열  (0) 2024.11.04
S2 11724. 연결 요소의 개수  (0) 2024.11.03
S3 15650. N과 M (2)  (0) 2024.11.02
S2 1874. 스택 수열  (0) 2024.10.30
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.