삐까냥의 파도타기

Q1890. 점프 본문

코딩/백준 알고리즘

Q1890. 점프

금손형아 2019. 2. 16. 18:53

이전 문제와 동일합니다.


import java.io.BufferedReader;

import java.io.InputStreamReader;

import java.util.StringTokenizer;


public class Q1890 {


static int mapSize;

static int[][] map;

static long[][] mapValue;

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

BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

StringTokenizer st = new StringTokenizer(br.readLine());


mapSize = Integer.parseInt(st.nextToken());

map = new int[mapSize+1][mapSize+1];

mapValue = new long[mapSize+1][mapSize+1];

for (int i = 1; i <= mapSize; i++) {

st = new StringTokenizer(br.readLine());

for (int j = 1; j <= mapSize; j++) {

map[i][j] = Integer.parseInt(st.nextToken());

mapValue[i][j] = -1;

}

}

mapValue[mapSize][mapSize] = 1;

System.out.println(searchMap(1, 1));

}


public static long searchMap(int y, int x) {

if (mapValue[y][x] != -1) {

return mapValue[y][x];

}

mapValue[y][x] = 0;

int jump = map[y][x];

//하

if (y + jump <= mapSize) {

mapValue[y][x] += searchMap(y+jump, x);

}


//우

if (x + jump <= mapSize) {

mapValue[y][x] += searchMap(y, x+jump);

}

return mapValue[y][x];

}

}

 


'코딩 > 백준 알고리즘' 카테고리의 다른 글

Q11052. 카드 구매하기  (0) 2019.02.17
Q2156. 포도주 시식  (0) 2019.02.16
Q1520. 내리막길  (0) 2019.02.16
Q11722. 가장 긴 감소하는 부분 수열  (0) 2019.02.16
Q11055. 가장 큰 증가 수열  (0) 2019.02.14