백준 25706 java : DP

magicdrill·2025년 7월 8일
0

백준 문제풀이

목록 보기
633/656

백준 25706 java : DP

import java.util.*;

public class BJ25706 {
    static Scanner sc = new Scanner(System.in);
    static int N;
    static int [] road;

    public static void main(String[] args) {
        inputData();
        findAnswer();
    }

    public static void inputData(){
        int i;

        N = sc.nextInt();
        road = new int[N];
        for(i = 0; i < road.length; i++){
            road[i] = sc.nextInt();
        }

        sc.close();
    }

    public static void findAnswer(){
        int [] DP = new int[road.length];
        int i, next;

        for (i = N - 1; i >= 0; i--) {
            if (road[i] == 0) {
                next = i + 1;
            } else {
                next = i + road[i] + 1;
            }

            if (next >= N) {
                DP[i] = 1;
            } else {
                DP[i] = 1 + DP[next];
            }
        }

        for(int num : DP){
            System.out.print(num + " ");
        }
        System.out.println();
    }
}

0개의 댓글