개발자를 향해...

백준 -9465 스티커 (java) 본문

코테 공부

백준 -9465 스티커 (java)

eugeneHwang1124 2022. 4. 23. 21:23
728x90
반응형

https://www.acmicpc.net/problem/9465

 

9465번: 스티커

첫째 줄에 테스트 케이스의 개수 T가 주어진다. 각 테스트 케이스의 첫째 줄에는 n (1 ≤ n ≤ 100,000)이 주어진다. 다음 두 줄에는 n개의 정수가 주어지며, 각 정수는 그 위치에 해당하는 스티커의

www.acmicpc.net

 

전형적인 dp문제

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.Collections;
import java.util.LinkedList;

public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        String[] t = br.readLine().split(" ");
        int count = Integer.parseInt(t[0]);
        while (count > 0) {

            int n = Integer.parseInt(br.readLine());
            int[][] dp = new int[2][n+1];
            int[][] cost = new int[2][n+1];
            for(int j =0; j<2; j++) {
                t = br.readLine().split(" ");
                for (int i = 1; i <= n; i++) {
                    cost[j][i] = Integer.parseInt(t[i-1]);
                }
            }
            dp[0][1]=cost[0][1];
            dp[1][1] =cost[1][1];
            for (int i = 2; i <= n; i++) {
                dp[1][i] = Math.max(dp[0][i-1], dp[0][i-2]) + cost[1][i];
                dp[0][i] = Math.max(dp[1][i-1], dp[1][i-2]) + cost[0][i];
            }
            System.out.println(Math.max(dp[0][n],dp[1][n]));
            count--;
        }
    }
}

 

반응형

'코테 공부' 카테고리의 다른 글

백준 - 1449 수리공 항승 (java)  (0) 2022.04.23
백준 - 14503번 로봇청소기 (java)  (0) 2022.04.23