1 ๋ถ„ ์†Œ์š”

๐Ÿ“ [S1_1149] RGB๊ฑฐ๋ฆฌ

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;

public class Main {
 	static StringTokenizer st;
	static int[][] arr;
	static int[][] dp;

	public static void main(String[] args) throws IOException {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

		// ์ง‘์˜ ์ˆ˜
		int N = Integer.parseInt(br.readLine());

		// ์ž…๋ ฅ ๊ฐ’ ์ €์žฅ ๋ฐฐ์—ด
		arr = new int[N][3];
		// ๋”ํ•œ ๊ฐ’์„ ์ €์žฅํ•  ๋ฐฐ์—ด
		dp = new int[N][3];

		// ๋ฐฐ์—ด์— ๊ฐ’ ์ž…๋ ฅ ( ์ง‘ ์ƒ‰๊น” )
		for (int i = 0; i < N; i++) {
			st = new StringTokenizer(br.readLine(), " ");
			for (int j = 0; j < 3; j++) {
				arr[i][j] = Integer.parseInt(st.nextToken());
			}
		}
		
        // ์ดˆ๊นƒ๊ฐ’ ์„ค์ •
		dp[0][0] = arr[0][0];
		dp[0][1] = arr[0][1];
		dp[0][2] = arr[0][2];

        // ์ƒ‰ ๋ณ„๋กœ ๊ฐ๊ฐ์˜ ์ตœ์ข…๊ฐ’
		long first = go(N - 1, 0);
		long second = go(N - 1, 1);
		long third = go(N - 1, 2);

        // ์ตœ์†Ÿ๊ฐ’ ๊ตฌํ•˜๊ธฐ
		long res = Math.min(first, Math.min(second, third));

		System.out.println(res);

	}

    // dp ๋ฐฐ์—ด์— ๋„ฃ๋Š” ๊ณผ์ •
	static int go(int i, int j) {

        // dp์— ๊ฐ’์ด ์—†๋Š” ๊ฒฝ์šฐ if๋ฌธ์•ˆ์— ๋“ค์–ด๊ฐ€๊ณ  dp์— ๊ฐ’์ด ์žˆ๋Š” ๊ฒฝ์šฐ ๋ฐ”๋กœ ๊ฐ€์ ธ์˜จ๋‹ค ( ๋ฉ”๋ชจ์ด์ œ์ด์…˜ )
		if (dp[i][j] == 0) {
			if (j == 0) {
				dp[i][j] = arr[i][j] + Math.min(go(i - 1, j + 1), go(i - 1, j + 2));
			} else if (j == 1) {
				dp[i][j] = arr[i][j] + Math.min(go(i - 1, j - 1), go(i - 1, j + 1));
			} else {
				dp[i][j] = arr[i][j] + Math.min(go(i - 1, j - 1), go(i - 1, j - 2));
			}
		}

		return dp[i][j];
	}
}

๐Ÿค” ๋‚˜์˜ ์ƒ๊ฐ

๊ทธ๋ฆผ์„ ๊ทธ๋ ค์„œ ๋ณด๋‹ˆ ํ•˜ํ–ฅ์‹ ์ ‘๊ทผ์„ ํ•ด์•ผํ•ด์„œ DP๋ฌธ์ œ๋ผ๊ณ  ์ƒ๊ฐํ–ˆ๋‹ค.
๊ทธ๋ž˜์„œ ์ฒ˜์Œ ๊ฐ’์„ dp์— ๋„ฃ์–ด์ฃผ๊ณ  go ๋ฉ”์„œ๋“œ๋ฅผ ํ†ตํ•ด ๋ณธ์ธ ์—ด์— ์žˆ๋Š” ๊ฐ’์„ ์ œ์™ธํ•œ ๋‚˜๋จธ์ง€ ๋‘ dp ๊ฐ’ ์ค‘์— ์ž‘์€ ๊ฒƒ์„ ๊ฐ€์ ธ์™€ ๋ณธ์ธ ๊ฐ’์ด๋ž‘ ๋”ํ•ด dp ๊ฐ’์„ ๊ตฌํ•ด์ฃผ์—ˆ๋‹ค. ( go ๋ฉ”์„œ๋“œ ์„ค๋ช… )
๋งŒ์•ฝ dp ๋ฐฐ์—ด์— ๊ฐ’์ด ์žˆ์œผ๋ฉด ๋ฐ”๋กœ dp ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•ด์ฃผ๊ณ  ์—†์œผ๋ฉด ์œ„์— ๋งํ•œ ๊ณผ์ •์„ ๋ฐ˜๋ณตํ•ด์ฃผ์—ˆ๋‹ค.

ํƒœ๊ทธ: , , ,

์นดํ…Œ๊ณ ๋ฆฌ:

์—…๋ฐ์ดํŠธ: