in.add()

[1149] RGB거리 본문

Algorithm/BOJ

[1149] RGB거리

idan 2021. 9. 14. 21:02

문제 링크 : 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