Baekjoon - 1932

Tadap·2023년 11월 13일
0

Baekjoon

목록 보기
82/94

문제

Solved.ac Class4

1차시도

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;
    }
}

실패

2차시도

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도 풀다보니까 어느정도 적응이 되어가는것 같다.

0개의 댓글