한 매장의 일별 손익이 profits 배열로 주어집니다. 흑자면 양수, 적자면 음수, 본전이면 0입니다.
경영진은 연속된 며칠을 잘라 홍보 자료에 쓰려고 합니다. 그 구간의 손익 합이 최대가 되도록 고르되, 어느 날부터 어느 날까지인지도 함께 알아야 합니다.
solution(profits) 함수를 작성해 [최대 합, 시작 인덱스, 끝 인덱스] 형태의 배열을 반환하세요.
인덱스는 0부터 시작하고, 끝 인덱스는 구간에 포함됩니다.
구간은 최소 하루 이상이어야 하므로 빈 구간은 고를 수 없습니다(모든 날이 적자여도 하루는 골라야 합니다).
최대 합이 같은 구간이 여럿이면 다음 순서로 하나를 고릅니다.
| profits | 반환값 | 설명 |
|---|---|---|
[3, -4, 6, -1, 5, -8, 2] |
[10, 2, 4] |
인덱스 2~4의 6, -1, 5 합이 10 |
[-7, -2, -9] |
[-2, 1, 1] |
전부 적자라 손실이 가장 작은 하루 |
[1, -1, 1, -1, 1] |
[1, 0, 0] |
합 1인 구간이 여럿 → 가장 짧고 앞선 하루 |
[5, -2, 5, -9, 6] |
[8, 0, 2] |
5, -2, 5의 합 8이 마지막 날 6보다 큼 |
profits.length ≤ 100,000profits[i] ≤ 10,000시간 복잡도 목표: O(n)
▶ 실행은 기록 없이 채점만, 제출은 결과가 진행률·오답노트에 기록됩니다.