연속 펄스 부분 수열의 합
[JS] 연속 펄스 부분 수열의 합
문제 자체는 부분수열의 합을 구하는 방법을 알면 해결할 수 있는 문제이다. 1 , -1 , 1 , -1 ... -1 , 1 , - 1 , 1 ... 해당되는 펄스를 각각 곱한 2개의 수열을 만들어주면 된다. 이어서 dp를 활용해서 부분수열의 합중 가장 큰 값을 가지면 된다. 아래 예시를 보며 생각해보자. 2 3 -6 1 3 -1 2 4 dp[n] 을 n번째에 올 수 있는 가장 최대치의 부분수열의 합이라 생각하고 maxDp[n]을 n번를 무조건 포함한 가장 최대치의 부분수열의 합이라 생각하자. 결국 dp[n] = Math.max(dp[n-1] , maxDp[n]) 이 되게된다. n번째 값이 들어왔을때 이를 포함한 부분수열의 합이 더큰가 아닌가만 확인하면 되는 문제로 바뀐 것이다. maxDp[n]은 아래와 ..