Notice
Recent Posts
Recent Comments
Link
«   2025/07   »
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
Archives
Today
Total
관리 메뉴

전공공부

[BOJ_11060] 점프 점프 본문

카테고리 없음

[BOJ_11060] 점프 점프

monitor 2024. 3. 18. 23:19

설명


 

어떻게 보면 메모리제이션을 활용한 문제입니다. 이전의 상태 값을 가지고 다음에 진행 할 때 그 상태값을 가진 수에 대해서만 진행을 시켰으니깐요. (처음 dp를 초기화 하고 나머지를 빼는 이유) 그리고, 각 dp는 각 점프의 횟수를 나타냅니다. 

 

코드


package BOJ.Dynamic_Programming;

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

public class BOJ_11060 {
    public static void main(String[] args) throws Exception{
        BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
        StringTokenizer tk = new StringTokenizer(in.readLine()," ");
        int N = Integer.parseInt(tk.nextToken());
        int[] A = new int[N];
        int[] dp = new int[N];
        tk = new StringTokenizer(in.readLine()," ");
        for (int i = 0; i < N; i++){
            A[i] = Integer.parseInt(tk.nextToken());
        }
        dp[0] = 1;
        for (int i = 0; i < N; i++){
            if(A[i] > 0 && dp[i] != 0){
                for (int j = i; j < (Math.min((i + A[i] + 1), N)); j++){
                    if(dp[j] == 0 || dp[j] > dp[i] + 1) {
                        dp[j] = dp[i] + 1;
                    }
                }
            }
        }
        System.out.println(dp[N - 1] == 0 ? -1 : dp[N - 1] - 1);
    }
}

 

 

11060번: 점프 점프

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

www.acmicpc.net