본문 바로가기
알고리즘/문제 풀이

[Java] 백준 1149번 RGB거리

by _eunji_ 2020. 4. 28.

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

 

1149번: RGB거리

첫째 줄에 집의 수 N(2 ≤ N ≤ 1,000)이 주어진다. 둘째 줄부터 N개의 줄에는 각 집을 빨강, 초록, 파랑으로 칠하는 비용이 1번 집부터 한 줄에 하나씩 주어진다. 집을 칠하는 비용은 1,000보다 작거나 같은 자연수이다.

www.acmicpc.net

import java.util.Scanner;

public class Main {
	public static void main(String[] args) {
		Scanner s = new Scanner(System.in);
		
		int N = s.nextInt(); //집의 수
		int dp[][] = new int[N][3];
		
		for(int i=0;i<N;i++) { 
			for(int j=0;j<3;j++) {//RGB
				dp[i][j]=s.nextInt();	
			}
		}
		
		
		for(int i=1;i<N;i++) { //dp[0]은 초기화 상태로 같으므로 생략하고 1부터 시작
			 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]);
		}
		
		int min = Math.min(Math.min(dp[N-1][0], dp[N-1][1]), dp[N-1][2]);
		  
		System.out.println(min);

	}
}

댓글