in.add()
[1149] RGB거리 본문
문제 링크 : https://www.acmicpc.net/problem/1149
1149번: RGB거리
첫째 줄에 집의 수 N(2 ≤ N ≤ 1,000)이 주어진다. 둘째 줄부터 N개의 줄에는 각 집을 빨강, 초록, 파랑으로 칠하는 비용이 1번 집부터 한 줄에 하나씩 주어진다. 집을 칠하는 비용은 1,000보다 작거나
www.acmicpc.net
문제 해결 방법
1행부터 내려가면서 위의 행의 같은 열이 아닌 최솟값을 더해줬다.
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int N = sc.nextInt();
int[][] house = new int[N][3];
for (int i = 0; i < N; i++) {
for (int j = 0; j < 3; j++) {
house[i][j] = sc.nextInt();
}
}
for (int i = 1; i < N; i++) {
for (int j = 0; j < 3; j++) {
int min = Integer.MAX_VALUE;
for (int k = 0; k < 3; k++) {
if (k == j) continue;
min = Math.min(min, house[i - 1][k]);
}
house[i][j] += min;
}
}
int answer = Integer.MAX_VALUE;
for (int i = 0; i < 3; i++) {
answer = Math.min(answer, house[N - 1][i]);
}
System.out.println(answer);
}
}
'Algorithm > BOJ' 카테고리의 다른 글
[14003] 가장 긴 증가하는 부분 수열 5 (0) | 2021.09.16 |
---|---|
[14002] 가장 긴 증가하는 부분 수열 4 (0) | 2021.09.16 |
[2116] 주사위 쌓기 (0) | 2021.09.11 |
[2012] 등수 매기기 (0) | 2021.09.10 |
[3085] 사탕 게임 (0) | 2021.09.09 |
Comments