사실 이걸 올려야하나 말아야하나 고민 많이했는데.. 구하는 방법이라도 알 수 있으니 그냥 올렸다.
dp보다는 변수2개로 둬서 구했는데.. dp로 구해도 되긴 된다..
원리는
now와 max를 두고
arr[2]번째부터 now에 계속 더해주는 것이다. (2번째부터 도는 이유는 첫번째는 무조건 자기 자신이 최대값이기 때문)
그리고 더해준 now 와 max를 비교해 둘 중 더 큰값을 MAX 값으로 두면 된다.
그리고 now가 더해져 가면서 만약 0보다 작아진다면? 그땐 now를 0으로 (초기화) 시켜주면 된다.
왜냐면 now가 -가 된다면 최대값이 될 수 없다.
예외가 있다면 음수들만 arr에 들어온다는 것인데
그런 경우엔 arr 중에서 가장 작은 값이 최대 값이다.
예를 들어 arr에 5개의 숫자가 들어있고 -1,-2,-3,-4,-5 라면 , 아무리 더해도 -1보다 커질 수는 없다
그러므로 최대값은 -1인 것이다.
dp도 이런 방식으로 짜면 된다.. 점화식은.... 위에서 다 설명했읍니다.....
<풀이소스>
아 그리고 동적할당으로 arr를 잡았는데, 사실 저것도 필요없이 변수 하나만 추가하면 된다..
반복문을 돌면서 입력, 계산, 대소비교 다 하고 있기 때문에
arr에다가 값을 입력받을 필요는 없다...
'알고리즘 > 동적계획법' 카테고리의 다른 글
동적계획법의 기초 (0) | 2019.08.31 |
---|---|
[백준] 2156번 포도주 시식 (0) | 2019.01.29 |
[백준] 1932번 정수 삼각형 (0) | 2019.01.26 |
[백준] 1149번 RGB거리 (0) | 2019.01.25 |
[백준] 11727번 2 x n 타일링 2 (0) | 2019.01.24 |