2019. 8. 23. 17:28
728x90

문제 번호: 2579

문제 제목: 계단 오르기

문제 주소: https://www.acmicpc.net/problem/2579


문제 내용

계단을 올라갈 때마다 밟을 칸의 점수를 획득한다. 도착지점까지 오르면서 얻을 수 있는 최고 점수를 출력한다.
단, 계단은 한 칸 또는 두 칸 간격으로 올라갈 수 있으며 연속해서 세 개를 밟을 수는 없다.


테스트 케이스

6
10
20
15
25
10
20

75

1
10

10

2
10
20

30

3
10
20
30

50

6
10
15
20
10
25
20

80


문제 풀이

최대 이동 간격이 두 칸이라는 점, 연속해서 세 개의 계단을 밟을 수 없다는 점이 풀이의 핵심이다.
N번째 위치에 도달하는 경우는 직전에서 올라오는 경우, 두 칸 전에서 올라오는 경우로 나뉜다.
직전에서 올라오는 경우에는 직전 칸 도달의 최대값을 현재 칸 값에 더하면 되고, 
두 칸 전에서 올라오는 경우에는 세 칸 전 도달의 최대값 + 두 칸 전의 계단값에 현재 칸 값을 더하면 된다.

이미지로 표현하면 아래 두 가지 경우 중에 큰 값을 최대값 n에 넣는 것과 같다.

풀이 코드



728x90

'공부 > 문제풀기' 카테고리의 다른 글

백준 10844 - 쉬운 계단 수  (0) 2019.08.26
백준 1463 - 1로 만들기  (0) 2019.08.26
백준 1932 - 정수 삼각형  (0) 2019.08.23
백준 1149 - RGB거리  (0) 2019.08.23
백준 9461 - 파도반 수열  (0) 2019.08.21
Posted by 아야카