BOJ_S1_1932
π [S1_1932] μ μ μΌκ°ν
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class Main {
static StringTokenizer st;
static int[][] arr;
static int[][] dp;
static int N;
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
// μΌκ°ν ν¬κΈ°
N = Integer.parseInt(br.readLine());
// μΌκ°ν κ°λ€
arr = new int[N][N];
dp = new int[N + 1][N + 1];
for (int i = 0; i < N; i++) {
st = new StringTokenizer(br.readLine(), " ");
for (int j = 0; j <= i; j++) {
arr[i][j] = Integer.parseInt(st.nextToken());
}
}
for (int i = N - 1; i >= 0; i--) {
for (int j = i; j >= 0; j--) {
// dp λ°°μ΄μ 2κ°μ λΉκ΅ν΄μ ν° κ°κ³Ό λ³ΈμΈ κ°μ λν΄μ dpμ μ μ₯νλ€
dp[i][j] = Math.max(dp[i + 1][j], dp[i + 1][j + 1]) + arr[i][j];
}
}
System.out.println(dp[0][0]);
}
}
π€ λμ μκ°
DP λ¬Έμ μ΄λ€.
μΌλ¨ Nμ΄ 500κ° κΉμ§ μκΈ° λλ¬Έμ DPλ‘ νΈλ κ²μ μμλ€.
κ·Έλ¦Όμ κ·Έλ €λ³΄μμ λ ν ν λ°μ κ°κ³Ό ν ν λ°μ μ€λ₯Έμͺ½ κ°κ³Ό λΉκ΅ν΄μ λ ν° κ°μ λ³ΈμΈ κ°κ³Ό λν΄μ£Όλ©΄ λλ κ·μΉμ λ°κ²¬νμλ€.
μ΄μ§ νΈλ¦¬μ ꡬ쑰λΌμ μ½κ² μ΄ν΄ν μ μμλ€.
νμ€ν 빨리 κ·μΉμ μ°Ύλκ² μ€μν κ² κ°λ€ !!