[백준/DP] 17404 RGB거리2 - 자바

2024. 2. 3. 17:14· Problem Solving/CT-Java
목차
  1. 문제
  2. 풀이

(옵시디언 기록일 : 23년 12월 30일)

 

문제

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

 

17404번: RGB거리 2

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

www.acmicpc.net

 

풀이

1번집과 N번집의 색깔이 같이 않게 하려면
- 1번집 R 일 경우 1번집 G, B를 DP값을 무한대로
- 1번집 G 일 경우 1번집 R, B를 DP값을 무한대로
- 1번집 B 일 경우 1번집 R, G를 DP값을 무한대로
설정하고 반복문을 3번 돌린다. 
여기서 첫번째 집에서 선택한 색깔 이외에 다른 색깔을 첫집에서 사용할 수 없으므로 무한대로 초기화를 해 놓는다. 

두번째집부터 색칠을 하게 되면 마지막 집에서는 첫번째 집에서 선택한 색깔을 칠할 수 없으므로 `dp[마지막집][첫번째 집의 색깔]` 을 고려하지 않는다. 

 

import java.util.*;  
import java.io.*;  
  
public class BOJ_17404_G4_RGB거리2 {  
    static StringTokenizer st;  
    public static void main(String[] args) throws Exception {  
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));  
        int n = Integer.parseInt(br.readLine());  
        int[][] arr = new int[n+1][4];  
        int[][] dp = new int[n+1][4];  
  
        for (int i = 1; i <= n; i++) {  
            st = new StringTokenizer(br.readLine());  
            arr[i][1] = Integer.parseInt(st.nextToken());  
            arr[i][2] = Integer.parseInt(st.nextToken());  
            arr[i][3] = Integer.parseInt(st.nextToken());  
        }  
  
        int min = Integer.MAX_VALUE;  
  
        // R, G, B 각각 시작  
        for(int c = 1; c <= 3; c++) {  
            for (int i = 1; i <= 3; i++) {  
                if(c == i) dp[1][i] = arr[1][i];  
                else dp[1][i] = 1000 * 1000;  
            }  
  
            for (int i = 2; i <= n; i++) {  
                dp[i][1] = arr[i][1] + Math.min(dp[i-1][2] , dp[i-1][3]);  
                dp[i][2] = arr[i][2] + Math.min(dp[i-1][1] , dp[i-1][3]);  
                dp[i][3] = arr[i][3] + Math.min(dp[i-1][1] , dp[i-1][2]);  
            }  
  
            for (int i = 1; i <= 3; i++) {  
                if(c != i) min = Math.min(min, dp[n][i]);  
            }  
        }  
  
        System.out.println(min);  
  
    }  
}

'Problem Solving > CT-Java' 카테고리의 다른 글

[백준/DP-DFS] 1103 게임 - 자바  (0) 2024.02.03
[백준/그리디] 2457 공주님의 정원 - 자바  (0) 2024.02.03
[백준/DP] 2616 소형기관차 - 자바  (0) 2024.02.03
[프로그래머스/문자열] 17677 [1차] 뉴스 클러스터링 - JAVA  (0) 2023.09.18
[프로그래머스/구현] 77485 행렬 테투리 회전하기 - JAVA  (0) 2023.09.16
  1. 문제
  2. 풀이
'Problem Solving/CT-Java' 카테고리의 다른 글
  • [백준/DP-DFS] 1103 게임 - 자바
  • [백준/그리디] 2457 공주님의 정원 - 자바
  • [백준/DP] 2616 소형기관차 - 자바
  • [프로그래머스/문자열] 17677 [1차] 뉴스 클러스터링 - JAVA
White Han
White Han
Software Developer
sudo apt-get happinessSoftware Developer
White Han
sudo apt-get happiness
White Han
전체
오늘
어제
  • 분류 전체보기 (183)
    • Language (35)
      • Java (17)
      • Java-Weekly-study (0)
      • Python (18)
    • BackEnd (11)
      • Server (2)
      • Spring (3)
      • Spring Security (0)
      • JDBC (1)
      • NodeJS (2)
      • LINUX (3)
    • DataBase (10)
      • MySQL (5)
      • MongoDB (4)
      • Oracle (1)
    • Infra (4)
      • Docker (4)
    • CS (38)
      • OS (38)
    • Problem Solving (79)
      • Algorithm (8)
      • CT-Java (30)
      • CT-Python (41)
    • IDE (1)
      • eclipse (1)
      • vscode (0)
    • Etc. (3)
      • Git (1)
      • TDD, Refactor, CleanCode (1)
      • Conference (1)
    • 기록 (2)
      • 후기 (1)
      • 프로젝트 회고록 (1)

블로그 메뉴

  • 홈
  • 태그
  • 방명록
  • 글쓰기

공지사항

  • 방문해 주셔서 감사합니다.

인기 글

태그

  • 자바 this
  • 자바스크립스 식별자 종류
  • SSAFY
  • 프로세스
  • 싸피 후기
  • 자바스크립트
  • 알파스캔 모니터
  • 운영체제 구조
  • 자바스크립트 식별자
  • Java this
  • javascript identifier
  • AOC 24B1X
  • 알파스캔 AOC 24B1X
  • 운영체제
  • 사무용 모니터 추천
  • java
  • 사무용 모니터
  • 싸피
  • 자바 super
  • Java super
  • OS
  • 24인치 모니터 추천
  • 싸피 합격
  • 싸피8기
  • 프로세서
  • 자바 inheritance
  • 자바스크립트 개념
  • javascript
  • Java Inheritance
  • 운영체제 역할

최근 댓글

최근 글

hELLO · Designed By 정상우.v4.2.1
White Han
[백준/DP] 17404 RGB거리2 - 자바
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.