본문 바로가기

백준/실버

[백준 11060번] 점프 점프 (C++)

문제 링크 : 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;
}

첫 초기화값을 잘 선정해야 한다.

'백준 > 실버' 카테고리의 다른 글

[백준 4963번] 섬의 개수 (C++)  (0) 2023.02.06
[백준 7562번] 나이트의 이동 (C++)  (0) 2023.02.06
[백준 2193번] 이친수 (C++)  (0) 2023.02.06
[백준 14501번] 퇴사 (C++)  (0) 2023.02.06
[백준 11048번] 이동하기 (C++)  (0) 2023.02.06