Solved.ac Class4
public class Main {
private static int[][] data;
private static int size;
public static void main(String[] args) throws Exception{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
size = Integer.parseInt(br.readLine());
data = new int[size][size + 1];
for (int i = 1; i < size+1; i++) {
String[] read = br.readLine().split(" ");
for (int j = 0; j < i; j++) {
data[i - 1][j + 1] = Integer.parseInt(read[j]);
}
}
dp();
System.out.println(getMaxAnswer());
}
private static void dp() {
for (int i = 1; i < size; i++) {
for (int j = 1; j < i + 2; j++) {
int beforeA = data[i - 1][j - 1];
int beforeB = data[i - 1][j];
if (beforeA > beforeB) {
data[i][j] += beforeA;
} else {
data[i][j] += beforeB;
}
}
}
}
private static int getMaxAnswer() {
int max = 0;
for (int i = 0; i < size; i++) {
max = Math.max(data[size -1][i], max);
}
return max;
}
}
실패
private static int getMaxAnswer() {
int max = 0;
for (int i = 0; i < size + 1; i++) {
max = Math.max(data[size -1][i], max);
}
return max;
}
오타가 생겼다.
dp할때 전과 다음값을 읽어와야 해서 칸을 임의로 하나 더 만들어서 진행했는데
이를 놓치고 답을 찾을떄 순회를 size까지만 했다.
성공
dp도 풀다보니까 어느정도 적응이 되어가는것 같다.