Hansel
백준_1309(DP) 본문
평상시에 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 |