林's

[JUNGOL] RGB 마을 (JAVA) 본문

프로그래밍/문제해결

[JUNGOL] RGB 마을 (JAVA)

풀림이 2019. 3. 25. 21:58

문제 주소: Click


RGB 마을의 집들은 일자로 쭈욱 이어져 있어요.

이 집들의 지붕을 색칠하려고 하는데. 빨강,초록,파랑으로만 칠할 수 있고

각 집들의 지붕의 면적이 다르기 때문에 비용도 다 제각각이에요.

입력으로는 집의 개수만큼 그 집을 R,G,B로 칠할 수 있는 비용이 주어집니다.

이 입력들을 사용해서 모든 집을 최소한의 비용으로 칠했을 때 얼마가 나오는 지 구해보세요.


대신 다음 색깔을 칠할 때는 바로 앞의 색과 겹치면 안 된답니다.

























import java.util.Scanner;

public class MainRGB마을대소동
{
    public static String src = "3\n1 100 100\n100 100 100\n1 100 100";
    public static void main(String[] args)
    {
        Scanner sc = new Scanner(System.in);
        sc = new Scanner(src);

        int n = sc.nextInt();
        int rgb[] = new int[3]; // rgb[0]:빨강색을 선택했을 때의 최소비용, [1]:초록색 '', [2]: 파랑색''
        rgb[0] = sc.nextInt();
        rgb[1] = sc.nextInt();
        rgb[2] = sc.nextInt();

        // 초기값 넣은 후 처리
        int temp[] = new int[3];
        for (int i = 0; i < n-1; i++)
        {
            int r = sc.nextInt();
            int g = sc.nextInt();
            int b = sc.nextInt();

            temp[0] = r + Math.min(rgb[1], rgb[2]);
            temp[1] = g + Math.min(rgb[0], rgb[2]);
            temp[2] = b + Math.min(rgb[0], rgb[1]);

            for (int j = 0; j < 3; j++) rgb[j] = temp[j];
        }

        int min = Integer.MAX_VALUE;
        for(int e : rgb) min = Math.min(min, e);

        System.out.println(min);
    }
}


'프로그래밍 > 문제해결' 카테고리의 다른 글

[BOJ] 1753. 최단경로  (0) 2019.04.05
[SWEA] 1953. 탈주범 검거  (0) 2019.04.05
[BOJ] 14889. 스타트와 링크  (0) 2019.03.26
[SWEA] 달팽이수  (0) 2019.03.25
[SWexpert] 2383. 점심 식사시간  (0) 2019.03.16
Comments