문제 - https://www.acmicpc.net/problem/1932
1932번: 정수 삼각형
첫째 줄에 삼각형의 크기 n(1 ≤ n ≤ 500)이 주어지고, 둘째 줄부터 n+1번째 줄까지 정수 삼각형이 주어진다.
www.acmicpc.net
import java.io.*;
import java.util.*;
public class Main {
static int N;
static int[][] T, dp;
public static void main(String[] args) throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
StringTokenizer st;
N = Integer.parseInt(br.readLine());
T = new int[N][];
dp = new int[N][];
int answer = 0;
for (int i = 0; i < N; i++) {
st = new StringTokenizer(br.readLine());
T[i] = new int[i+1];
dp[i] = new int[i+1];
for (int j = 0; j < i+1; j++) {
T[i][j] = Integer.parseInt(st.nextToken());
if(i==0 && j==0) {
dp[0][0] = T[0][0];
continue;
}
if(j==0)
dp[i][j] = dp[i-1][0] + T[i][0];
else if (j==i)
dp[i][j] = dp[i-1][j-1] + T[i][j];
else
dp[i][j] = Math.max(dp[i-1][j-1]+T[i][j], dp[i-1][j]+T[i][j]);
answer = Math.max(answer, dp[i][j]);
}
}
bw.write(answer>0 ? answer+"\n" : T[0][0]+"\n");
bw.flush();
bw.close();
br.close();
}
}
DP로 별 무리없이 해결할 수 있었다.
'공부 > algorithm' 카테고리의 다른 글
BOJ 구간 합 구하기 5(11660) - Java (0) | 2021.08.16 |
---|---|
BOJ 구간 합 구하기 4(11659) - Java (0) | 2021.08.16 |
BOJ 구슬 탈출 2(13460) - Java (0) | 2021.08.15 |
BOJ 스타트와 링크(14889) - Java (0) | 2021.08.13 |
BOJ 할로윈 묘지(3860) - Java (0) | 2021.08.11 |