뮁이의 개발새발

[JAVA] 백준 1149 RGB거리 (DP) 본문

Algorithm

[JAVA] 백준 1149 RGB거리 (DP)

뮁뮁이 2021. 9. 15. 00:46

시작이 빨,초,파일때의 케이스를 전부 나눠서 계산 해 준 뒤, 그 중 최솟값이 무엇인지 고르는것이 핵심 

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

//bj1149
public class Main {
	public static void main(String[] args) throws IOException {
		BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
		int N = Integer.parseInt(in.readLine());

		int[][] house = new int[N + 1][3];

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

		int[][] D = new int[N + 1][3];

		for (int i = 1; i <= N; i++) {
			D[i][0] = Math.min(D[i - 1][1], D[i - 1][2]) + house[i][0];
			D[i][1] = Math.min(D[i - 1][0], D[i - 1][2]) + house[i][1];
			D[i][2] = Math.min(D[i - 1][0], D[i - 1][1]) + house[i][2];
		}
		System.out.println(Math.min(Math.min(D[N][0], D[N][1]), D[N][2]));

	}
}
Comments