https://www.acmicpc.net/problem/1149
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);
}
}
'알고리즘 > 문제 풀이' 카테고리의 다른 글
[Java] 백준 11726번 2xn 타일링 (0) | 2020.05.06 |
---|---|
[Java] 백준 10989번 수 정렬하기3 (0) | 2020.04.30 |
[Java] 백준 1463번 1로 만들기 (0) | 2020.04.28 |
[Java] 백준 2156번 포도주 시식 (0) | 2020.04.28 |
[Java] 동적 계획법 DP(Dynamic Programming) (0) | 2020.04.27 |
댓글