코드와이
[BAEKJOON] 1149. RGB 거리 본문
문제링크
1149번: RGB거리
첫째 줄에 집의 수 N(2 ≤ N ≤ 1,000)이 주어진다. 둘째 줄부터 N개의 줄에는 각 집을 빨강, 초록, 파랑으로 칠하는 비용이 1번 집부터 한 줄에 하나씩 주어진다. 집을 칠하는 비용은 1,000보다 작거나
www.acmicpc.net
package acmicpc.Silver1;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class RGB {
public static void main(String[] args) throws NumberFormatException, IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st;
int n = Integer.parseInt(br.readLine());
int[][] arr = new int[n][3];
int[][] dp = new int[n][3];
for(int i = 0 ; i < n ; i++) {
st = new StringTokenizer(br.readLine());
int r = Integer.parseInt(st.nextToken());
int g = Integer.parseInt(st.nextToken());
int b = Integer.parseInt(st.nextToken());
arr[i][0] = r;
arr[i][1] = g;
arr[i][2] = b;
if(i == 0) {
dp[i][0] = r;
dp[i][1] = g;
dp[i][2] = b;
} else {
dp[i][0] = Math.min(dp[i-1][1] + r, dp[i-1][2] + r);
dp[i][1] = Math.min(dp[i-1][0] + g, dp[i-1][2] + g);
dp[i][2] = Math.min(dp[i-1][0] + b, dp[i-1][1] + b);
}
}
int min = 9874321;
for(int i = 0 ; i < 3 ; i++) {
min = Math.min(min, dp[n-1][i]);
}
System.out.println(min);
}
}
'acmicpc' 카테고리의 다른 글
[BAEKJOON] 2839. 설탕 배달(DP) (0) | 2021.03.23 |
---|---|
[BAEKJOON] 1753. 최단경로 (0) | 2021.03.23 |
[BAEKJOON] 12852. 1로 만들기2 (0) | 2021.03.23 |
[BAEKJOON] 1463. 1로 만들기(DP) (0) | 2021.03.23 |
[BAEKJOON] 12865. 평범한 배낭 (0) | 2021.03.23 |