Hansel

백준_1309(DP) 본문

알고리즘과 자료구조/DP

백준_1309(DP)

핑슬 2022. 5. 24. 01:23

 

평상시에 DP가 많이 약하다고 느껴서 이제 DP 문제를 위주로 풀어보려한다.

DP 문제에서 중요한 점은 이전의 값을 최대한 활용해야 한다는 것이다.

굉장히 쉬운 문제이지만 DP의 감을 잡기엔 좋다고 느꼈다.

 

package TT5_MAY;

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

public class Boj_1309 {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringTokenizer st = new StringTokenizer(br.readLine());
        int N = Integer.parseInt(st.nextToken());
        int M = Integer.parseInt(st.nextToken());
        int[][] map = new int[N+1][M+1];
        int[][] track = new int[N+1][M+1];
        for (int i = 1; i <= N; i++) {
            st = new StringTokenizer(br.readLine());
            for (int j = 1; j <= M; j++) {
                map[i][j] = Integer.parseInt(st.nextToken());
            }
        }
        //1. 이동
        //2. 내 위치로 올 수 있는 이전 좌표들 중 큰거 +
        //3. 이동
        track[1][1] = map[1][1];
        for(int y=1;y<=N;y++){
            for(int x=1;x<=M;x++){
                track[y][x] = Math.max(track[y-1][x],track[y][x-1]) + map[y][x];
            }
        }
        //x,y,누적합
        System.out.println(track[N][M]);
    }
}

'알고리즘과 자료구조 > DP' 카테고리의 다른 글

백준_9465(DP)  (0) 2022.06.11
백준_1520(DFS & DP)  (0) 2022.04.10
백준_2655(DP)  (0) 2022.02.04
백준_1463(DP)  (0) 2022.02.04
백준_11053(DP)  (0) 2022.02.04