Lewis's Tech Keep

[백준] 점프 본문

JAVA/알고리즘

[백준] 점프

Lewis Seo 2021. 3. 30. 23:33

참고: www.acmicpc.net/problem/1890

 

1890번: 점프

첫째 줄에 게임 판의 크기 N (4 ≤ N ≤ 100)이 주어진다. 그 다음 N개 줄에는 각 칸에 적혀져 있는 수가 N개씩 주어진다. 칸에 적혀있는 수는 0보다 크거나 같고, 9보다 작거나 같은 정수이며, 가장

www.acmicpc.net

 

- dp 문제

- dp[i][j] = i, j 칸에서 가능한 루트 갯수

 

더보기
import java.io.*;
import java.util.*;

public class Solution {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int N = sc.nextInt();
        int[][] maps = new int[N][N];
        for (int i = 0; i < N; i++) {
            for (int j = 0; j < N; j++) {
                maps[i][j] = sc.nextInt();
            }
        }
        sc.close(); // 값이 커질 수 있으므로 long 형으로 초기화
        long[][] dp = new long[N][N];
        dp[0][0] = 1;
        for (int x = 0; x < N; x++) {
            for (int y = 0; y < N; y++) {
                int move = maps[x][y];
                if (dp[x][y] == 0 || move == 0) continue;
                if (x + move < N) {
                    dp[x + move][y] += dp[x][y];
                }
                if (y + move < N) {
                    dp[x][y + move] += dp[x][y];
                }
            }
        }
        System.out.println(dp[N - 1][N - 1]);
    }
    }

'JAVA > 알고리즘' 카테고리의 다른 글

[백준] 합분해  (0) 2021.03.31
[백준] 합분해 - 실패  (0) 2021.03.31
[백준] 점프 - 실패  (0) 2021.03.30
[백준] 내리막 길  (0) 2021.03.30
[백준] 파티  (0) 2021.03.28
Comments