프로그래머스 - 연속 펄스 부분 수열의 합(Java)
두 가지 풀이법이 있습니다. 1. dp 방법입니다. 펄스는 짝수, 홀수에 따라 1 또는 -1이 반복됩니다. 주어지는 sequence에 펄스를 곱한 값의 최대를 dp에 저장시켜 값을 갱신하면 됩니다. 2. 누적합 방법입니다. 펄스를 곱한 값을 누적합하고, 누적합의 최대 위치가 연속된 부분 수열의 마지막 원소 위치가 됩니다. 예를 들어 펄스를 곱한 배열이 [8, -1, -7, -100, 55, 40, 13]있다고 하겠습니다. 여기서 최대 부분 수열은 [55, 40, 13]입니다. 배열을 누적합하면 [8, 7, 0, -100, -45, -5, 8] 입니다. 누접합의 가장 큰 원소가 8이고, 해당 배열에서 위치의 값은 13입니다. 13 위치에서 부터 뒤로 원소를 끝까지 확인하면서 최대 값을 구하면 됩니다. 단,..
더보기