on
[JAVA/자바 백준 1149] RGB거리
[JAVA/자바 백준 1149] RGB거리
https://www.acmicpc.net/problem/1149
풀이
1. 2차원 배열 Cost에 우선 해당하는 rgb에 비용 값을 모두 넣어줍니당.
2. Cost[i][0](red) 일 경우 Cost[i][1](green) Cost[i][2](blue) 중 최솟값을 더해줍니다.
0(Red) 1(Green) 2(Blue) Cost[0][0] Cost[0][1] Cost[0][2] Cost[1][0] += Min(Cost[0][1],Cost[0][2]
기존 값 + Min(0번째 G, 0번째 B) Cost[1][1] += Min(Cost[0][0],Cost[0][2]
기존 값 + Min(0번째 R, 0번째 B) Cost[1][2] += Min(Cost[0][0],Cost[0][1]
기존 값 + Min(0번째 R, 0번째 G) . . . . . . Cost[i][0] += Min(Cost[i-1][1],Cost[i-1][2]
기존 값 + Min(i-1번째 G, i-1번째 B) Cost[i][1] += Min(Cost[i-1][0],Cost[i-1][2]
기존 값 + Min(i-1번째 R, i-1번째 B) Cost[i][2] += Min(Cost[i-1][0],Cost[i-1][1]
기존 값 + Min(i-1번째 R, i-1번째 G)
import java.io.*; import java.util.*; // dp // weights에 2차원배열 값을 입력받고 // weights에 red,blue,green 3가지 경우로 나눠서 원래 값에서 // red 일 경우 weights[i-1]에 blue와 green 중 min 값을 더하 public class Main { //paint 값 배열 static int[][] Cost; public static void main(String[] args)throws Exception { // TODO Auto-generated method stub Scanner sc = new Scanner(System.in); int N= sc.nextInt(); Cost= new int[N][3]; for(int i=0 ; i
728x90
반응형
from http://kwangkyun-world.tistory.com/72 by ccl(A) rewrite - 2021-09-15 01:01:35