์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- ์ฐ์ฐ์
- ํ๋ฐฉ์ฟผ๋ฆฌ
- ๋ฐฑ์ค9093
- ๋ฌธ์์ด
- ์คํ์์ด
- ์ฐ
- ์ฟ ํกERD
- ๋ฐฐ์ด
- ์
- ์คํ
- ๋
- ๋ฐฑ์ค11053 #ํ์ด์ฌ #python
- StringBuilder
- java
- ์ฟ ํกDB
- ์คํธ๋ฆผ
- StringBuffer
- ๋ฐ์ดํฐํ์
- ๋ฐฑ์ค9012
- ๋ฐฑ์ค1874
- stream
- ์๋ฐ
- Today
- Total
Tech Log ๐ ๏ธ
๋ฐฑ์ค 1149๋ฒ) RGB๊ฑฐ๋ฆฌ java ๋ณธ๋ฌธ
๋ถ์
๊ธฐ๋ณธ์ ์ธ DP ๋ฌธ์ ์ด๋ค.
ํ๋ค์ด ๋ฐฉ์์ผ๋ก ํ๋ฉด ์ฝ๊ฒ ํ ์ ์๋๋ฐ ๋จ์ ๋น๊ตํด์ dp ๋ฐฐ์ด์ ํฐ ๊ฐ์ ๋ฃ์ด์ฃผ๋ฉด ๋๋ค. (๊ตฌํํ๋ ๊ณผ์ ์ด ์ข ๊ท์ฐฎ์๋ค..)
์ง์ด 2๊ฐ ์์ ๋,
๋๋ฒ์งธ ์ง์ด R ์ธ ๊ฒฝ์ฐ์ ์ฒซ๋ฒ์งธ ์ง์ด G,B์ธ ๊ฒฝ์ฐ ์ค ์์ ๊ฐ์ DP๋ฐฐ์ด์ ๋ฃ์ด์ค๋ค.
๋๋ฒ์งธ ์ง์ด G ์ธ ๊ฒฝ์ฐ์ ์ฒซ๋ฒ์งธ ์ง์ด R,B์ธ ๊ฒฝ์ฐ ์ค ์์ ๊ฐ์ DP๋ฐฐ์ด์ ๋ฃ์ด์ค๋ค.
๋๋ฒ์งธ ์ง์ด B ์ธ ๊ฒฝ์ฐ์ ์ฒซ๋ฒ์งธ ์ง์ด R,G์ธ ๊ฒฝ์ฐ ์ค ์์ ๊ฐ์ DP๋ฐฐ์ด์ ๋ฃ์ด์ค๋ค.
์ด๋ ๊ฒ ํ๋ฉด DP์ ๊ฐ ๊ฒฝ์ฐ์ ๋ํ ์ต์๊ฐ์ด ๋ค์ด๊ฐ๋ค.
์ง์ด 3๊ฐ ์์ ๋,
์ธ๋ฒ์งธ ์ง์ด R ์ธ ๊ฒฝ์ฐ์ ๋๋ฒ์งธ ์ง์ด G,B์ธ(DP๋ฐฐ์ด์์) ๊ฒฝ์ฐ ์ค ์์ ๊ฐ์ DP๋ฐฐ์ด์ ๋ฃ์ด์ค๋ค.
์ธ๋ฒ์งธ ์ง์ด G ์ธ ๊ฒฝ์ฐ์ ๋๋ฒ์งธ ์ง์ด R,B์ธ(DP๋ฐฐ์ด์์) ๊ฒฝ์ฐ ์ค ์์ ๊ฐ์ DP๋ฐฐ์ด์ ๋ฃ์ด์ค๋ค.
์ธ๋ฒ์งธ ์ง์ด B ์ธ ๊ฒฝ์ฐ์ ๋๋ฒ์งธ ์ง์ด R,G์ธ(DP๋ฐฐ์ด์์) ๊ฒฝ์ฐ ์ค ์์ ๊ฐ์ DP๋ฐฐ์ด์ ๋ฃ์ด์ค๋ค.
์ด๋ ๊ฒ ํ๋ฉด ์๋์ ์ผ๋ก ๊ฐ๊ฐ์ ์ง์ ์น ํ๋ ๊ฒฝ์ฐ์ ๋ํ ์ต์๊ฐ์ด ๋ง์ง๋ง ์ง ์ธ๋ฑ์ค์ DP ๋ฐฐ์ด์ ๋ค์ด๊ฐ๊ฒ ๋๋ค.
๋ง์ง๋ง ์ง๊น์ง ์ด๋ ๊ฒ ๊ตฌํด์ค ๋ค์์ DP[์ง][R] , DP[์ง][G] , DP[์ง][B] ์ค ์ต์๊ฐ์ ๋ฃ์ด์ฃผ๋ฉด ๋๋ค.
์ฝ๋
import java.util.Scanner;
import static java.lang.Math.*;
public class Main {
static Integer[][] dp;
static int[][] value;
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int num = sc.nextInt();
dp = new Integer[num+1][3];
value = new int[num+1][3];
for(int i=1;i<=num;i++){
for(int j=0;j<=2;j++){
value[i][j] = Integer.parseInt(sc.next());
}
}
dp[1][0] = value[1][0];
dp[1][1] = value[1][1];
dp[1][2] = value[1][2];
System.out.println(min(dp(num,0),min(dp(num,1),dp(num,2))));
}
static int dp(int num,int seq){
if(dp[num][seq] == null){
if(seq == 0){
dp[num][0] = min(dp(num-1,1) + value[num][seq],dp(num-1,2) + value[num][seq]);
}
if(seq == 1){
dp[num][1] = min(dp(num-1,0) + value[num][seq],dp(num-1,2) + value[num][seq]);
}
if(seq == 2){
dp[num][2] = min(dp(num-1,0) + value[num][seq],dp(num-1,1) + value[num][seq]);
}
}
return dp[num][seq];
}
}
'์๊ณ ๋ฆฌ์ฆ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๋ฐฑ์ค 9465) ์คํฐ์ปค java (0) | 2023.02.27 |
---|---|
๋ฐฑ์ค 1309) ๋๋ฌผ์ java (0) | 2023.02.25 |
๋ฐฑ์ค 2225๋ฒ) ํฉ๋ถํด java (0) | 2023.02.22 |
๋ฐฑ์ค1463๋ฒ ์๊ฐ ์ด๊ณผ ๋ ์ด์ (0) | 2023.02.18 |
๋ฐฑ์ค 10799๋ฒ) ์ ๋ง๋๊ธฐ java (0) | 2023.01.21 |