https://www.acmicpc.net/problem/11048
11048번: 이동하기
준규는 N×M 크기의 미로에 갇혀있다. 미로는 1×1크기의 방으로 나누어져 있고, 각 방에는 사탕이 놓여져 있다. 미로의 가장 왼쪽 윗 방은 (1, 1)이고, 가장 오른쪽 아랫 방은 (N, M)이다. 준규는
www.acmicpc.net
매우 기초적인 DP 문제이다. 하지만 문제는 그게 아니다. 드디어 c++ 에서 자바로 넘어가기 시도 중이다. 자바는 고통이다. 하 무슨 입력 받는거 부터 매우 불편하다. c++ 이었으면 슉샥슉샥 쇽 하고 끝났을텐데 이건 정말 입출력이 짜증난다. 사실 다 그지같다. 하
풀이는 그냥 대각선, 왼, 오 중에서 제일 큰 거 받아와서 현재 값이랑 더해주면 끝이다.
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
String[] str = br.readLine().split(" ");
int n = Integer.parseInt(str[0]);
int m = Integer.parseInt(str[1]);
int[][] miro = new int[n + 1][m + 1];
for (int i = 1; i <= n; i++) {
str = br.readLine().split(" ");
for (int j = 1; j <= m; j++) {
miro[i][j] = Integer.parseInt(str[j - 1]);
}
}
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= m; j++) {
miro[i][j] += Math.max(miro[i - 1][j - 1], Math.max(miro[i - 1][j], miro[i][j - 1]));
}
}
bw.write(miro[n][m] + "\n");
bw.close();
}
}
'Algorithm > Baekjoon' 카테고리의 다른 글
[백준 12904 - c++] A와 B (0) | 2022.03.30 |
---|---|
[백준 11049 - Java] 행렬 곱셈 순서 (0) | 2022.02.24 |
[백준 23599 - C++] 밥 (0) | 2022.02.16 |
[백준 1107 - c++] 리모컨 (0) | 2022.02.06 |
[백준 12107 - c++] 약수 지우기 게임 1 (1) | 2022.02.06 |