본문 바로가기

OJ

[BOJ] 11060 점프 점프 (JAVA)

https://www.acmicpc.net/problem/11060

 

11060번: 점프 점프

재환이가 1×N 크기의 미로에 갇혀있다. 미로는 1×1 크기의 칸으로 이루어져 있고, 각 칸에는 정수가 하나 쓰여 있다. i번째 칸에 쓰여 있는 수를 Ai라고 했을 때, 재환이는 Ai이하만큼 오른쪽으로

www.acmicpc.net

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.StringTokenizer;

public class Main {
	
    public static void main(String[] args) throws Exception {

        int INF = 9999;
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        int N = Integer.parseInt(br.readLine());
        if (N == 1) {
            System.out.print(0);
            return;
        }
        int[] input = new int[N];
        int[] dp = new int[N];
        StringTokenizer st = new StringTokenizer(br.readLine(), " ");
        for (int i = 0; i < N; i++) {
            input[i] = Integer.parseInt(st.nextToken());
            dp[i] = INF;
        } // end of input

        dp[0] = 0;
        for (int i = 0; i < N - 1; i++) {
            for (int j = 1; j <= input[i]; j++) {
                if (N <= i + j) break;
                dp[i + j] = Math.min(dp[i + j], dp[i] + 1);
            }
        }

        System.out.print(dp[N - 1] == INF ? -1 : dp[N - 1]);

    }
	
}