삐까냥의 파도타기

Q11048. 이동하기 본문

코딩/백준 알고리즘

Q11048. 이동하기

금손형아 2019. 2. 12. 22:37

아래, 오른쪽 방향으로 가며 상, 좌의 max value를 더하며 나아가는 방식입니다.


문제 조건에는 대각선 방향이동도 존재하지만,


대각선 이동 값 <= 오른쪽, 아래 이동 값 

대각선 이동 값 <= 아래, 오른쪽 이동 값 

이므로, 생략했습니다.


array[x][y] += max(array[y][x-1], array[y-1][x])


import java.io.BufferedReader;

import java.io.InputStreamReader;

import java.util.StringTokenizer;


public class Q11048 {


static long[][] array;

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

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

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

int y = Integer.valueOf(st.nextToken());

int x = Integer.valueOf(st.nextToken());

array = new long[y+1][x+1];

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

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

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

long value = array[i-1][j];

if (value < array[i][j-1]) {

value = array[i][j-1];

}

array[i][j] = Integer.valueOf(st.nextToken()) + value;

}

}

System.out.println(array[y][x]);

}


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

Q11722. 가장 긴 감소하는 부분 수열  (0) 2019.02.16
Q11055. 가장 큰 증가 수열  (0) 2019.02.14
Q2167. 2차원 배열의 합  (0) 2019.02.11
Q11057. 오르막 수  (0) 2019.02.10
Q9461. 파도반 수열  (0) 2019.02.10