사실 이걸 올려야하나 말아야하나 고민 많이했는데.. 구하는 방법이라도 알 수 있으니 그냥 올렸다.
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에다가 값을 입력받을 필요는 없다...