백준 2579번 : 계단 오르기 / C++

2023. 2. 20. 16:38개인공부/코딩테스트

2579번: 계단 오르기 (acmicpc.net)

 

2579번: 계단 오르기

계단 오르기 게임은 계단 아래 시작점부터 계단 꼭대기에 위치한 도착점까지 가는 게임이다. <그림 1>과 같이 각각의 계단에는 일정한 점수가 쓰여 있는데 계단을 밟으면 그 계단에 쓰여 있는 점

www.acmicpc.net

동적 계획법 문제로 계단을 배열로 생각하면 계단을 2칸 이동이 가능한 경우와 1,2칸을 자요롭게 이동가능한 경우가 있으므로 한 배열을 2개로 나눠서 차근차근 최댓값을 저장했다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
 
#include <iostream>
 
using namespace std;
 
int main()
{
    // Arr[300][x] : x = 0 :무조건 2칸  x = 1 : 1칸,2칸 자유롭게 올라감
    int Arr[300][2= {};
    int stairs = 1;
    cin >> stairs;
 
    for (int i = 0; i < stairs; ++i)
    {
        int score = 0;
        cin >> score;
        if (i == 0)
        {
            Arr[0][1= score;
            continue;
        }
        if (i == 1)
        {
            Arr[1][0= Arr[0][1+ score;
            Arr[1][1= score;
            continue;
        }
        Arr[i][0= Arr[i - 1][1+ score;
 
        if (Arr[i - 2][1> Arr[i - 2][0])
            Arr[i][1= Arr[i-2][1+ score;
        else
            Arr[i][1= Arr[i-2][0+ score;
    }
 
 
    if (Arr[stairs - 1][0> Arr[stairs - 1][1])
        cout << Arr[stairs - 1][0];
    else
        cout << Arr[stairs - 1][1];
 
 
    return 0;
}
 
 
 
 
 
cs