당신은 도심 전광판의 광고 편성을 맡았습니다. 하루 방송은 여러 개의 광고 슬롯으로
나뉘어 있고, prices[i]는 i번 슬롯을 판매했을 때 얻는 수익(원)입니다.
전광판은 광고를 한 번 내보내면 화면 보정을 위해 바로 다음 슬롯을 반드시 비워야 합니다. 즉 인접한 두 슬롯을 동시에 판매할 수 없습니다. 떨어져 있는 슬롯은 몇 개든 판매할 수 있고, 아무 슬롯도 판매하지 않아도 됩니다.
슬롯별 수익 배열 prices가 주어질 때 얻을 수 있는 최대 총수익을 반환하는
solution(prices) 함수를 작성하세요.
| prices | 결과 |
|---|---|
[30, 90, 40, 70, 20] |
160 |
[50, 20, 10, 60, 60] |
120 |
[40, 10, 90, 10, 40, 90, 10] |
220 |
[7, 7] |
7 |
예시 1 설명: 1번과 3번 슬롯을 팔아 90 + 70 = 160원입니다. 0·2·4번을 모두 팔면
30 + 40 + 20 = 90원이라 더 적습니다.
예시 2 설명: 0·2·4번 슬롯을 팔아 50 + 10 + 60 = 120원이 최대입니다.
3번과 4번은 인접하므로 함께 팔 수 없습니다.
예시 3 설명: 0·2·5번 슬롯을 팔아 40 + 90 + 90 = 220원입니다.
1 ≤ prices.length ≤ 100,0000 ≤ prices[i] ≤ 1,000,000 (정수)시간 복잡도 목표: O(n)
공간 복잡도 목표: O(1)
▶ 실행은 기록 없이 채점만, 제출은 결과가 진행률·오답노트에 기록됩니다.