Park DJ
dj0998
Park DJ
전체 방문자
오늘
어제
  • 분류 전체보기 (363)
    • 백준 (363)

공지사항

인기 글

태그

  • 백준 7567
  • 백준 7662
  • 백준
  • 백준 14582
  • 자바
  • 백준 4659
  • 백준 16926
  • Java
  • 백준 15961
  • 백준 12605
  • 백준 1064
  • 백준 2225
  • 백준 6550
  • 백준 3135
  • 백준 1495
  • 백준 1531
  • 백준 3049
  • 백준 2467
  • 백준 12871
  • 백준 1914
  • 백준 16194
  • 백준 10709
  • 백준 15655
  • 백준 15312
  • 백준 8892
  • 백준 1747
  • 백준 2343
  • 백준 2591
  • 백준 1011
  • 백준 24039
hELLO · Designed By 정상우.
Park DJ

dj0998

백준 1149 RGB거리(Java)
백준

백준 1149 RGB거리(Java)

2023. 2. 13. 13:48

https://www.acmicpc.net/problem/1149

 

1149번: RGB거리

첫째 줄에 집의 수 N(2 ≤ N ≤ 1,000)이 주어진다. 둘째 줄부터 N개의 줄에는 각 집을 빨강, 초록, 파랑으로 칠하는 비용이 1번 집부터 한 줄에 하나씩 주어진다. 집을 칠하는 비용은 1,000보다 작거나

www.acmicpc.net


 

해석 및 팁

 


 

이 문제는 다이내믹프로그래밍을 활용하면 되며 연속된 색이 선택되지 않아야 하므로 모든 경로의 색의 값을 구한 뒤 최종적인 최솟값을 출력하면 됩니다.

 


 

Java 코드

 


import java.util.Scanner;

public class Main {
  public static void main(String[] args) {
    Scanner sc = new Scanner(System.in);
    StringBuilder sb = new StringBuilder();
    
    int n = sc.nextInt();
    int[][] arr = new int[n + 1][3];
   
    for(int i = 1; i <= n; i++) {
      arr[i][0] = sc.nextInt();
      arr[i][1] = sc.nextInt();
      arr[i][2] = sc.nextInt();
    }

    for(int i = 2; i <= n; i++) {
      arr[i][0] += Math.min(arr[i - 1][1], arr[i - 1][2]);
      arr[i][1] += Math.min(arr[i - 1][0], arr[i - 1][2]);
      arr[i][2] += Math.min(arr[i - 1][0], arr[i - 1][1]);
    }

    int min = Math.min(arr[n][0], Math.min(arr[n][1], arr[n][2]));
    
    System.out.println(min);
  }
}

'백준' 카테고리의 다른 글

백준 1932 정수 삼각형(Java)  (0) 2023.02.14
백준 1931 회의실배정(Java)  (0) 2023.02.14
백준 2067 단지번호붙이기(Java)  (0) 2023.02.13
백준 1500 최대 곱(Java)  (0) 2023.02.12
백준 1254 팰린드롬 만들기(Java)  (0) 2023.02.12
    '백준' 카테고리의 다른 글
    • 백준 1932 정수 삼각형(Java)
    • 백준 1931 회의실배정(Java)
    • 백준 2067 단지번호붙이기(Java)
    • 백준 1500 최대 곱(Java)
    Park DJ
    Park DJ

    티스토리툴바