๋ฌธ์
ํด๋น ํฌ์คํ ์ ๋ฐฑ์ค์ 1149๋ฒ RGB ๊ฑฐ๋ฆฌ ์ ์ ๊ทผ๊ณผ ํด๊ฒฐ ๋ฐฉ๋ฒ์ ์ค๋ช ํ ๊ธ ์ ๋๋ค.
์ ๋ต ์์ค ์ฝ๋๋ฅผ ํ์ธํ์๋ ค๋ฉด solve url ์์ ํ์ธ ๊ฐ๋ฅํฉ๋๋ค.
์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ์ด๋ค ๋ฐฉ์์ผ๋ก ์ ๊ทผํด์ผ ํ๋์ง๋ฅผ ๋จผ์ ์๊ฐํด๋ณด์.
ํด๊ฒฐ๋ฒ
๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด์ ํ์ํ ์ ์ฒ๋ฆฌ๋ฅผ ํด๋ณด์.
์ฐ์ ์ด ๋ฌธ์ ๋ ์
๋ ฅ์ด n์ด๋ผ๋ฉด arr[n][3]
์ ๋ฐฐ์ด์ด ํ์ํ๋ค.
์? n๊ฐ์ ์ง์ด ์์ ๋ ๊ฐ๊ฐ์ด ๊ฐ๋ RGB ์์ ๊ฐ์ค์น๊ฐ ๋ค๋ฅด๊ธฐ ๋๋ฌธ์.
๊ทธ๋์ ์์ ์ ์ ๋ ฅ์ ์ฐ๋ฆฌ๊ฐ ์๊ฐํ ๋ฐฐ์ด์ ๋ด์ผ๋ฉด ๋ค์๊ณผ ๊ฐ๋ค.
3
26 40 83
49 60 57
13 89 99
26 40 83
house[0][0] house[0][1] house[0][2]
49 60 57
house[1][0] house[1][1] house[1][2]
13 89 99
house[2][0] house[2][1] house[2][2]
์ด์ ์ ์ฒ๋ฆฌ๊ฐ ๋๋ฌ๋ค.
๋ฌธ์ ๋ฅผ ์ ๊ทผํด๋ณด์.
์ ๊ทผ๋ฒ
์ด ๋ฌธ์ ์ ํต์ฌ์ house[1][1]
์ ์ง์ ์ ๋๋ก house[0][1]
์ ์ง์ ์๊ณผ ๊ฐ์ ์ ์๋ค๋ ๊ฒ์ด๋ค.
ํ ์ง์ ์ ํํ์ ๋, ์ ์ง์ ์๊ณผ ๊ฒน์น์ง๋ง ์๋๋ค๋ฉด 2๊ฐ์ง์ ๊ฒฝ์ฐ๊ฐ ๊ฐ๋ฅํ ๊ฒ์ด๋ค.
๊ทธ๋ผ ๋ชจ๋ ์์ ์น ํ ์ ์๋ ์ฒซ ๋ฒ์จฐ ์ง์ ์ ์ธํ๊ณ ์๋กญ๊ฒ house
๋ฐฐ์ด์ updateํ ์ ์๋ค.
์ง์ ์(i)์ ์์ ๊ฐ์ค์น(j : RGB ์ด 3์ด ๋๋ค) ๊ฐ ๋ด๊ธด i, j๋งํผ ๋ฐ๋ณต์ ๋๋ฉด์ ํ์ฌ ๊น์ง์ ๊ฐ์ค์น ํฉ์ด ์ต์์ธ ์ก๊ณผ ํ์ฌ ์ง์ ๊ฐ์ค์น๋ฅผ ๋ํ๋ฉด ํด๋น ์ง์ ์ต์ ๊ฐ์ค์น์ ๋น์ฉ์ ์ ์ ์์ง ์์๊น?
3
26 40 83
49 60 57
13 89 99
26 40 83
house[0][0] house[0][1] house[0][2]
49 + min(40, 83) 60 + min(26, 83) 57 + min(26, 40)
house[1][0] house[1][1] house[1][2]
13 + min(house[1][1], house[1][2]) ...
house[2][0] house[2][1] house[2][2]
๊ทธ๋ ๋ค.
์ ๋ต์ด๋ค.
๊ทธ๋ฆฌ๊ณ ๋ง์ง๋ง์ 3๊ฐ์ค์น ํฉ์ด ์ต์์ธ ์ง์ ์ ํํ๋ฉด ๋๋ ๊ฒ์ด๋ค.
์ ๋ต ์ฝ๋
import java.io.*;
public class Main {
static int[][] rgb;
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
int n = Integer.parseInt(br.readLine());
rgb = new int[n][3];
for (int i = 0; i < n; i++) {
String[] rgbs = br.readLine().split(" ");
for (int j = 0; j < rgbs.length; j++) {
rgb[i][j] = Integer.parseInt(rgbs[j]);
}
}
bw.flush();
bw.close();
}
private static int rgbWeight(int n, int m){
if(n == 0) return myMinimum(rgb[0][0], rgb[0][1], rgb[0][2]);
return myMinimum(rgb[n-1][0], rgb[n-1][1], rgb[n-1][2]);
}
private static int myMinimum(int a, int b, int c){
return Math.min(a, Math.min(b, c));
}
}
๋๊ธ