{}연습장
대시보드학습스킬 경로문제모의고사라이브 코테복습데이터
문제 목록〉DP〉징검다리 점프 점수← 이전다음 →
#089 · DP중간DP (1D 점화식)

징검다리 점프 점수

문제

일렬로 놓인 징검다리 칸 배열 stones 가 주어집니다. 각 칸에는 정수 점수가 적혀 있으며, 점수는 음수일 수도 있습니다.

첫 번째 칸 바로 앞에서 출발해 한 번에 1칸 또는 2칸씩 앞으로 전진합니다. 칸을 밟을 때마다 그 칸의 점수를 합산합니다. 단, 출발 직후 첫 이동은 반드시 첫 번째 칸(index 0)을 밟는 것에서 시작하며, 마지막 칸(index n-1)은 반드시 밟아야 도착으로 인정됩니다.

도착했을 때 얻을 수 있는 점수 합의 최댓값을 반환하세요.

예시

stones = [1, 2, 3]
  → 6  (1 → 2 → 3 을 모두 밟음: 1+2+3=6)
stones = [10, -50, 10, -50, 10]
  → 30 (0 → 2 → 4 칸을 밟아 -50 칸들을 건너뜀: 10+10+10=30)
stones = [5]
  → 5  (첫 칸이자 마지막 칸)

제약 조건

  • 1 ≤ stones.length ≤ 100,000
  • -10,000 ≤ stones[i] ≤ 10,000
  • 첫 칸(index 0)은 반드시 밟습니다.

시간 복잡도 목표: O(n)

공간 복잡도 목표: O(1)

테스트 케이스

예시 1: 모두 밟기
입력: stones = [1,2,3]
출력: 6
예시 2: 음수 칸 건너뛰기
입력: stones = [10,-50,10,-50,10]
출력: 30
예시 3: 단일 칸
입력: stones = [5]
출력: 5
엣지: 2칸 (둘 다 밟음)
입력: stones = [3,-2]
출력: 1
엣지: 전부 음수
입력: stones = [-1,-2,-3,-4]
출력: -7
엣지: 모두 양수 증가
입력: stones = [5,6,7,8,9]
출력: 35
엣지: 패턴 점프
입력: stones = [10,-5,-5,10,-5,-5,10]
출력: 20
solution.ts
에디터 로딩 중…

▶ 실행은 기록 없이 채점만, 제출은 결과가 진행률·오답노트에 기록됩니다.