NOTE/BAEKJOON

1149 RGB 거리

m-inz 2022. 3. 17. 01:01
import java.io.IOException;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.BufferedWriter;
import java.io.OutputStreamWriter;
import java.util.StringTokenizer;
public class main {
	static int[][] dp;
	static int N;
    static StringTokenizer st;
	public static void main(String[] args) throws IOException {
    	BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
    	BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
       	N = Integer.parseInt(br.readLine());
       	dp = new int[N+1][3];
       	for(int i =1; i<=N; i++) {
       		st = new StringTokenizer(br.readLine()," ");
       		dp[i][0]=Integer.parseInt(st.nextToken());
       		dp[i][1]=Integer.parseInt(st.nextToken());
       		dp[i][2]=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]);
       	}
   		bw.write(Math.min(Math.min(dp[N][0],dp[N][1]),dp[N][2])+" ");
    	bw.flush();
    	bw.close();
    }
}

전에 풀었던 문제랑 비슷한 문제 ,, 예엥

 

앞에꺼에 바로 위 제외한 값에서 최소 더해나가기 ~