문제 풀이 및 개발 공간

[백준] 11060번 점프점프 (silver 2 본문

백준공부/java

[백준] 11060번 점프점프 (silver 2

gomduri43 2023. 10. 29. 16:18

import java.io.*;
import java.util.*;

public class Main{
    public static void main(String[]args) throws IOException{
        BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
        BufferedWriter bw=new BufferedWriter(new OutputStreamWriter(System.out));
        int n=Integer.valueOf(br.readLine());
        int[] dp=new int[n+1];
        int[] num=new int[n+1];
        StringTokenizer st=new StringTokenizer(br.readLine());
        Arrays.fill(dp,Integer.MAX_VALUE);
        for(int i=1; i<=n; i++){
            num[i]=Integer.valueOf(st.nextToken());
        }
        dp[1]=0;
        for(int i=1; i<=n; i++){
            if(dp[i]==Integer.MAX_VALUE){
                continue;
            }
            for(int j=1; j<=num[i]; j++){
                if(i+j<=n){
                    dp[i+j]=Math.min(dp[i+j], dp[i]+1);
                }
            }
        }

        bw.write(dp[n]==Integer.MAX_VALUE ? "-1" : dp[n]+"");
        bw.flush();

    }
}