백준/실버
[백준 11060번] 점프 점프 (C++)
게임개발기원
2023. 2. 6. 01:25
문제 링크 : https://www.acmicpc.net/problem/11060
#include <bits/stdc++.h>
using namespace std;
int n, arr[1001], dp[1001];
int main()
{
cin >> n;
for(int i=0; i<n; i++)
{
cin >> arr[i];
dp[i] = 999999999; //무작위 큰 수로 초기화
}
dp[0] = 0; //첫 시작을 위한 초기화
for (int i = 0; i < n; i++)
{
for (int j = 1; j <=arr[i]; j++) //arr[i] 이하(1~arr[i]) 값만큼 오른쪽으로 점프 가능
{
if (dp[i] != 999999999)
{
dp[i + j] = min(dp[i + j], dp[i] + 1); //점화식을 통해 갱신
}
}
}
if (dp[n-1] == 999999999) { cout << -1; }
else { cout << dp[n-1]; }
return 0;
}
첫 초기화값을 잘 선정해야 한다.