Algorithm

DP / 백준 9465 스티커

Dear-J 2025. 5. 23. 13:42

 

문제 접근

두칸을 비워서 스티커를 뗄 이유가 없음

>> 한칸을 비울 때도 같은 행에 있는 걸 뽑을 때 비울 이유 없음

 

바로 전 다른 행의 결과 값과 한칸 비운 다른 행의 결과 값중 큰 값을 비교해서 도출

풀이

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;

public class S9465 {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

        int T = Integer.parseInt(br.readLine());

        for (int i = 0; i < T; i++) {
            int N = Integer.parseInt(br.readLine());
            int[][] arr = new int[2][N + 1];
            int[][] dp = new int[2][N + 1];

            StringTokenizer st = new StringTokenizer(br.readLine());
            for (int j = 1; j <= N; j++) {
                arr[0][j] = Integer.parseInt(st.nextToken());
            }
            st = new StringTokenizer(br.readLine());
            for (int j = 1; j <= N; j++) {
                arr[1][j] = Integer.parseInt(st.nextToken());
            }

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

            for (int j = 2; j <= N; j++) {
                dp[0][j] = Math.max(dp[1][j-2], dp[1][j-1]) + arr[0][j];
                dp[1][j] = Math.max(dp[0][j-2], dp[0][j-1]) + arr[1][j];
            }
            System.out.println(Math.max(dp[0][N], dp[1][N]));
        }
    }
}

'Algorithm' 카테고리의 다른 글

DP / 백준 1932 정수 삼각형  (0) 2025.05.23
DP / 백준 2156 포도주 시식  (0) 2025.05.23
DP / 백준 11057 오르막 수  (0) 2025.05.22
DP / 백준 1309 동물원  (0) 2025.05.22
DP / 백준 1149 RGB거리  (0) 2025.05.22