(JAVA) 백준온라인 9465번 - 스티커

2023. 10. 27. 20:33백준온라인

오랜만이다. 한달만이다. ... 나름 시험 공부 한다고 글을 올리지 못한 것도 있고 나의 알고리즘 공부에 문제가 있다고 생각해서 다시 전에 풀었던 문제들을 푸느라 글을 올리지 않았다 문제를 빨리 빨리 푸는것에 집중하게 되다보니 나의 실력이 쌓이지 않는다는 생각이 들었다 그래서 다시 이전에 풀었던 문제들을 풀었다. 이번에는 새로운 문제를 접해서 포스팅을 하겠다

문제를 읽었을 때는 괜히 내용이 길어서 당황했지만 내용 이해를 하고 차분하게 입력값 넣는 코드까지 작성하고 많이 고민을 했는데 도저히 생각이 나지 않아서 구글링을 하였다. 

import java.util.Scanner;

public class Main {

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int t = sc.nextInt();

        for(int i = 0; i<t; i++){   //테스트 케이스
            int max = 0;
            int n = sc.nextInt();

            int[][] arr = new int[2][n+1];
            int[][] dp = new int[2][n+1];
            for(int h = 0; h<2; h++){
                for(int y = 1; y<=n; y++){
                    arr[h][y] = sc.nextInt();
                }
            }

            dp[0][1] = arr[0][1];
            dp[1][1] = arr[1][1];

            for(int s = 2; s<=n; s++){
                dp[0][s] = Math.max(dp[1][s-1], dp[1][s-2])+arr[0][s];
                dp[1][s] = Math.max(dp[0][s-1], dp[0][s-2])+arr[1][s];
            }

            System.out.println(Math.max(dp[0][n],dp[1][n]));
        }
    }
}

문제를 풀고 제출하는것에 집중 되지 않게 한 문제가 이해가 될 때 까지 하루고 이틀이고 계속 풀 생각이다! 다행히 이번 문제는 쉽게 이해가 되는 쉬운 문제였다.