ebson

boj.kr/1149 RGB거리 (silver1) 자바 풀이 본문

ALGORITHM STUDY WITH PYTHON/DP

boj.kr/1149 RGB거리 (silver1) 자바 풀이

ebson 2024. 6. 6. 14:54

1. R, G, B 를 선택한 경우 N번 집까지 가는 최소값을 각각 dp[n][0], dp[n][1], dp[n][2] 으로 저장한다.

2. dp[n-1][0], dp[n-1][1], dp[n-1][2] 중 최소값을 출력한다.

 

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

public class Main {
    static int N;
    static int[][] dp;

    public static void main(String[] args) {

        try {
            BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
            N = Integer.parseInt(br.readLine());
            dp = new int[N][3];
            for (int i=0; i<N; i++) {
                StringTokenizer st = new StringTokenizer(br.readLine());
                for (int j=0; j<3; j++) {
                    dp[i][j] = Integer.parseInt(st.nextToken());
                }
            }

            for (int i=1; i<N; i++) {
                dp[i][0] += Math.min(dp[i-1][1], dp[i-1][2]);
                dp[i][1] += Math.min(dp[i-1][0], dp[i-1][2]);
                dp[i][2] += Math.min(dp[i-1][0], dp[i-1][1]);
            }

            System.out.println(Math.min(Math.min(dp[N-1][0], dp[N-1][1]), dp[N-1][2]));
        } catch (Exception e){
            e.printStackTrace();
        }

    }
}

 

 

Comments