- 코드
- 점화식은 R,G,B 입력을 받을때 R이면 이전 값의 G,B를 더해준 값을 현재 R의 인덱스에 넣어주는 식으로 하였다.
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;
import java.util.StringTokenizer;
public class Main {
static int n;
static String temp;
static int[][] dp;
public static void main(String[] args) throws IOException {
// TODO Auto-generated method stub
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
n = Integer.parseInt(br.readLine());
dp = new int[n][3];
temp = br.readLine();
StringTokenizer st = new StringTokenizer(temp);
dp[0][0] = Integer.parseInt(st.nextToken());
dp[0][1] = Integer.parseInt(st.nextToken());
dp[0][2] = Integer.parseInt(st.nextToken());
for (int i=1;i<n;i++) {
temp = br.readLine();
st = new StringTokenizer(temp);
dp[i][0] = Integer.parseInt(st.nextToken());
dp[i][1] = Integer.parseInt(st.nextToken());
dp[i][2] = Integer.parseInt(st.nextToken());
dp[i][0] = Math.min(dp[i][0] + dp[i-1][1], dp[i][0] + dp[i-1][2]);
dp[i][1] = Math.min(dp[i][1] + dp[i-1][0], dp[i][1] + dp[i-1][2]);
dp[i][2] = Math.min(dp[i][2] + dp[i-1][0], dp[i][2] + dp[i-1][1]);
}
System.out.println(Math.min(dp[n-1][0], Math.min(dp[n-1][1],dp[n-1][2])));
}
}
'algorithm' 카테고리의 다른 글
[JAVA] 백준 1764번 : 듣보잡 (0) | 2020.07.26 |
---|---|
[JAVA] 백준 2839번 : 설탕 배달 (0) | 2020.07.23 |
[JAVA] 백준 1003번 : 피보나치 함수 (0) | 2020.07.18 |
[JAVA] 백준 9095번 : 1,2,3 더하기 (0) | 2020.07.17 |
[JAVA] 백준 2156번 : 포도주 시식 (1) | 2020.07.13 |