반응형
📖 문제
📋 코드
import java.util.*;
public class Main {
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
int N = sc.nextInt();
int RGB[][] = new int[N+1][3];
int DP[][] = new int[N+1][3];
for (int i = 1; i <= N; i++) {
for (int j = 0; j <= 2; j++) {
RGB[i][j] = sc.nextInt();
}
}
DP[1][0] = RGB[1][0];
DP[1][1] = RGB[1][1];
DP[1][2] = RGB[1][2];
for (int i = 2; i <= N; i++) {
DP[i][0] = Math.min(DP[i-1][1], DP[i-1][2]) + RGB[i][0];
DP[i][1] = Math.min(DP[i-1][0], DP[i-1][2]) + RGB[i][1];
DP[i][2] = Math.min(DP[i-1][0], DP[i-1][1]) + RGB[i][2];
}
System.out.println(Math.min(Math.min(DP[N][0], DP[N][1]), DP[N][2]));
}
}
👨🏻💻 결과
📕 풀이 방법
DP[i][j] : 1~i-1번째 집까지 색칠하고 i번째 집은 j(0:R, 1G, 2:B)를 칠했을 때 최소 비용
🔗 링크
https://www.acmicpc.net/problem/1149
반응형
'🧩PS > 🥈Nomal' 카테고리의 다른 글
[JAVA] 백준 2579번 - 계단 오르기 (0) | 2021.10.17 |
---|---|
[JAVA] 백준 1932번 - 정수 삼각형 (0) | 2021.10.15 |
[JAVA] 백준 1904번 - 01타일 (0) | 2021.10.13 |
[JAVA] 백준 9184번 - 신나는 함수 실행 (0) | 2021.10.13 |
[JAVA] 백준 1003번 - 피보나치 함수 (0) | 2021.10.13 |